1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Turing.ListBlank.tail_map
File: Mathlib/Computability/TuringMachine.lean

tactic: conv => lhs; rw [← ListBlank.cons_head_tail l]
state_before: Γ : Type u_1
Γ' : Type u_2
inst✝¹ : Inhabited Γ
inst✝ : Inhabited Γ'
f : PointedMap Γ Γ'
l : ListBlank Γ
⊢ (map f l).tail = map f l.tail
state_after: Γ : Type u_1
Γ' : Type u_2
inst✝¹ : Inhabited Γ
inst✝ : Inhabited Γ'
f : PointedMap Γ Γ'
l : ListBlank Γ
⊢ (map f (cons l.head l.tail)).tail = map f l.tail

tactic: exact Quotient.inductionOn' l fun a ↦ rfl
state_before: Γ : Type u_1
Γ' : Type u_2
inst✝¹ : Inhabited Γ
inst✝ : Inhabited Γ'
f : PointedMap Γ Γ'
l : ListBlank Γ
⊢ (map f (cons l.head l.tail)).tail = map f l.tail
state_after: no goals
Theorem: Complex.isOpen_setOf_mem_nhds_and_isMaxOn_norm
File: Mathlib/Analysis/Complex/AbsMax.lean

tactic: refine isOpen_iff_mem_nhds.2 fun z hz => (eventually_eventually_nhds.2 hz.1).and ?_
state_before: E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℂ E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℂ F
f : E → F
s : Set E
hd : DifferentiableOn ℂ f s
⊢ IsOpen {z | s ∈ 𝓝 z ∧ IsMaxOn (norm ∘ f) s z}
state_after: E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℂ E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℂ F
f : E → F
s : Set E
hd : DifferentiableOn ℂ f s
z : E
hz : z ∈ {z | s ∈ 𝓝 z ∧ IsMaxOn (norm ∘ f) s z}
⊢ Filter.Eventually (IsMaxOn (norm ∘ f) s) (𝓝 z)

tactic: replace hd : ∀ᶠ w in 𝓝 z, DifferentiableAt ℂ f w := hd.eventually_differentiableAt hz.1
state_before: E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℂ E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℂ F
f : E → F
s : Set E
hd : DifferentiableOn ℂ f s
z : E
hz : z ∈ {z | s ∈ 𝓝 z ∧ IsMaxOn (norm ∘ f) s z}
⊢ Filter.Eventually (IsMaxOn (norm ∘ f) s) (𝓝 z)
state_after: E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℂ E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℂ F
f : E → F
s : Set E
z : E
hz : z ∈ {z | s ∈ 𝓝 z ∧ IsMaxOn (norm ∘ f) s z}
hd : ∀ᶠ (w : E) in 𝓝 z, DifferentiableAt ℂ f w
⊢ Filter.Eventually (IsMaxOn (norm ∘ f) s) (𝓝 z)

tactic: exact (norm_eventually_eq_of_isLocalMax hd <| hz.2.isLocalMax hz.1).mono fun x hx y hy =>
  le_trans (hz.2 hy).out hx.ge
state_before: E : Type u
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℂ E
F : Type v
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℂ F
f : E → F
s : Set E
z : E
hz : z ∈ {z | s ∈ 𝓝 z ∧ IsMaxOn (norm ∘ f) s z}
hd : ∀ᶠ (w : E) in 𝓝 z, DifferentiableAt ℂ f w
⊢ Filter.Eventually (IsMaxOn (norm ∘ f) s) (𝓝 z)
state_after: no goals
Theorem: CategoryTheory.Presieve.FamilyOfElements.Compatible.compPresheafMap
File: Mathlib/CategoryTheory/Sites/IsSheafFor.lean

tactic: intro Z₁ Z₂ W g₁ g₂ f₁ f₂ h₁ h₂ eq
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
f : P ⟶ Q
x : FamilyOfElements P R
h : x.Compatible
⊢ (FamilyOfElements.compPresheafMap f x).Compatible
state_after: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
f : P ⟶ Q
x : FamilyOfElements P R
h : x.Compatible
Z₁ Z₂ W : C
g₁ : W ⟶ Z₁
g₂ : W ⟶ Z₂
f₁ : Z₁ ⟶ X
f₂ : Z₂ ⟶ X
h₁ : R f₁
h₂ : R f₂
eq : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ Q.map g₁.op (FamilyOfElements.compPresheafMap f x f₁ h₁) = Q.map g₂.op (FamilyOfElements.compPresheafMap f x f₂ h₂)

tactic: unfold FamilyOfElements.compPresheafMap
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
f : P ⟶ Q
x : FamilyOfElements P R
h : x.Compatible
Z₁ Z₂ W : C
g₁ : W ⟶ Z₁
g₂ : W ⟶ Z₂
f₁ : Z₁ ⟶ X
f₂ : Z₂ ⟶ X
h₁ : R f₁
h₂ : R f₂
eq : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ Q.map g₁.op (FamilyOfElements.compPresheafMap f x f₁ h₁) = Q.map g₂.op (FamilyOfElements.compPresheafMap f x f₂ h₂)
state_after: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
f : P ⟶ Q
x : FamilyOfElements P R
h : x.Compatible
Z₁ Z₂ W : C
g₁ : W ⟶ Z₁
g₂ : W ⟶ Z₂
f₁ : Z₁ ⟶ X
f₂ : Z₂ ⟶ X
h₁ : R f₁
h₂ : R f₂
eq : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ Q.map g₁.op (f.app { unop := Z₁ } (x f₁ h₁)) = Q.map g₂.op (f.app { unop := Z₂ } (x f₂ h₂))

tactic: rwa [← FunctorToTypes.naturality, ← FunctorToTypes.naturality, h]
state_before: C : Type u₁
inst✝ : Category.{v₁, u₁} C
P Q U : Cᵒᵖ ⥤ Type w
X Y : C
S : Sieve X
R : Presieve X
f : P ⟶ Q
x : FamilyOfElements P R
h : x.Compatible
Z₁ Z₂ W : C
g₁ : W ⟶ Z₁
g₂ : W ⟶ Z₂
f₁ : Z₁ ⟶ X
f₂ : Z₂ ⟶ X
h₁ : R f₁
h₂ : R f₂
eq : g₁ ≫ f₁ = g₂ ≫ f₂
⊢ Q.map g₁.op (f.app { unop := Z₁ } (x f₁ h₁)) = Q.map g₂.op (f.app { unop := Z₂ } (x f₂ h₂))
state_after: no goals
Theorem: CategoryTheory.OplaxMonoidalFunctor.right_unitality_hom
File: Mathlib/CategoryTheory/Monoidal/Functor.lean

tactic: rw [← Category.assoc, ← Iso.eq_comp_inv, F.right_unitality, ← Category.assoc,
  ← F.toFunctor.map_comp, Iso.hom_inv_id, F.toFunctor.map_id, id_comp]
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
inst✝² : MonoidalCategory C
D : Type u₂
inst✝¹ : Category.{v₂, u₂} D
inst✝ : MonoidalCategory D
F : OplaxMonoidalFunctor C D
X : C
⊢ F.δ X (𝟙_ C) ≫ F.obj X ◁ F.η ≫ (ρ_ (F.obj X)).hom = F.map (ρ_ X).hom
state_after: no goals
Theorem: Rel.image_comp
File: Mathlib/Data/Rel.lean

tactic: ext z
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
⊢ (r • s).image t = s.image (r.image t)
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
⊢ z ∈ (r • s).image t ↔ z ∈ s.image (r.image t)

tactic: simp only [mem_image]
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
⊢ z ∈ (r • s).image t ↔ z ∈ s.image (r.image t)
state_after: case h
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
⊢ (∃ x ∈ t, (r • s) x z) ↔ ∃ x, (∃ x_1 ∈ t, r x_1 x) ∧ s x z

tactic: constructor
state_before: case h
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
⊢ (∃ x ∈ t, (r • s) x z) ↔ ∃ x, (∃ x_1 ∈ t, r x_1 x) ∧ s x z
state_after: case h.mp
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
⊢ (∃ x ∈ t, (r • s) x z) → ∃ x, (∃ x_1 ∈ t, r x_1 x) ∧ s x z

case h.mpr
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
⊢ (∃ x, (∃ x_1 ∈ t, r x_1 x) ∧ s x z) → ∃ x ∈ t, (r • s) x z

tactic: rintro ⟨x, xt, y, rxy, syz⟩
state_before: case h.mp
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
⊢ (∃ x ∈ t, (r • s) x z) → ∃ x, (∃ x_1 ∈ t, r x_1 x) ∧ s x z
state_after: case h.mp.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
x : α
xt : x ∈ t
y : β
rxy : r x y
syz : s y z
⊢ ∃ x, (∃ x_1 ∈ t, r x_1 x) ∧ s x z

tactic: exact ⟨y, ⟨x, xt, rxy⟩, syz⟩
state_before: case h.mp.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
x : α
xt : x ∈ t
y : β
rxy : r x y
syz : s y z
⊢ ∃ x, (∃ x_1 ∈ t, r x_1 x) ∧ s x z
state_after: no goals

tactic: rintro ⟨y, ⟨x, xt, rxy⟩, syz⟩
state_before: case h.mpr
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
⊢ (∃ x, (∃ x_1 ∈ t, r x_1 x) ∧ s x z) → ∃ x ∈ t, (r • s) x z
state_after: case h.mpr.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
y : β
syz : s y z
x : α
xt : x ∈ t
rxy : r x y
⊢ ∃ x ∈ t, (r • s) x z

tactic: exact ⟨x, xt, y, rxy, syz⟩
state_before: case h.mpr.intro.intro.intro.intro
α : Type u_1
β : Type u_2
γ : Type u_3
r : Rel α β
s : Rel β γ
t : Set α
z : γ
y : β
syz : s y z
x : α
xt : x ∈ t
rxy : r x y
⊢ ∃ x ∈ t, (r • s) x z
state_after: no goals
Theorem: LieModule.disjoint_weightSpace
File: Mathlib/Algebra/Lie/Weights/Basic.lean

tactic: obtain ⟨x, hx⟩ : ∃ x, χ₁ x ≠ χ₂ x := Function.ne_iff.mp h
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
χ₁ χ₂ : L → R
h : χ₁ ≠ χ₂
⊢ Disjoint (weightSpace M χ₁) (weightSpace M χ₂)
state_after: case intro
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
χ₁ χ₂ : L → R
h : χ₁ ≠ χ₂
x : L
hx : χ₁ x ≠ χ₂ x
⊢ Disjoint (weightSpace M χ₁) (weightSpace M χ₂)

tactic: exact (disjoint_weightSpaceOf R L M hx).mono
  (weightSpace_le_weightSpaceOf M x χ₁) (weightSpace_le_weightSpaceOf M x χ₂)
state_before: case intro
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
χ₁ χ₂ : L → R
h : χ₁ ≠ χ₂
x : L
hx : χ₁ x ≠ χ₂ x
⊢ Disjoint (weightSpace M χ₁) (weightSpace M χ₂)
state_after: no goals
Theorem: Multiset.Nat.mem_antidiagonal
File: Mathlib/Data/Multiset/NatAntidiagonal.lean

tactic: rw [antidiagonal, mem_coe, List.Nat.mem_antidiagonal]
state_before: n : ℕ
x : ℕ × ℕ
⊢ x ∈ antidiagonal n ↔ x.1 + x.2 = n
state_after: no goals
Theorem: CochainComplex.of_d_ne
File: Mathlib/Algebra/Homology/HomologicalComplex.lean

tactic: dsimp [of]
state_before: ι : Type u_1
V : Type u
inst✝⁴ : Category.{v, u} V
inst✝³ : HasZeroMorphisms V
α : Type u_2
inst✝² : AddRightCancelSemigroup α
inst✝¹ : One α
inst✝ : DecidableEq α
X : α → V
d : (n : α) → X n ⟶ X (n + 1)
sq : ∀ (n : α), d n ≫ d (n + 1) = 0
i j : α
h : i + 1 ≠ j
⊢ (of X d sq).d i j = 0
state_after: ι : Type u_1
V : Type u
inst✝⁴ : Category.{v, u} V
inst✝³ : HasZeroMorphisms V
α : Type u_2
inst✝² : AddRightCancelSemigroup α
inst✝¹ : One α
inst✝ : DecidableEq α
X : α → V
d : (n : α) → X n ⟶ X (n + 1)
sq : ∀ (n : α), d n ≫ d (n + 1) = 0
i j : α
h : i + 1 ≠ j
⊢ (if h : i + 1 = j then d i ≫ eqToHom ⋯ else 0) = 0

tactic: rw [dif_neg h]
state_before: ι : Type u_1
V : Type u
inst✝⁴ : Category.{v, u} V
inst✝³ : HasZeroMorphisms V
α : Type u_2
inst✝² : AddRightCancelSemigroup α
inst✝¹ : One α
inst✝ : DecidableEq α
X : α → V
d : (n : α) → X n ⟶ X (n + 1)
sq : ∀ (n : α), d n ≫ d (n + 1) = 0
i j : α
h : i + 1 ≠ j
⊢ (if h : i + 1 = j then d i ≫ eqToHom ⋯ else 0) = 0
state_after: no goals
Theorem: Ordinal.lt_wf
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: rcases typein_surj r (lt_trans h (typein_lt_type r _)) with ⟨b, rfl⟩
state_before: α✝ : Type u
β : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s : β → β → Prop
t : γ → γ → Prop
a✝ : Ordinal.{u_3}
α : Type u_3
r : α → α → Prop
wo : IsWellOrder α r
a x : α
x✝ : ∀ (y : α), r y x → Acc r y
IH : ∀ (y : α), r y x → Acc (fun x x_1 => x < x_1) (typein r y)
o : Ordinal.{u_3}
h : o < typein r x
⊢ Acc (fun x x_1 => x < x_1) o
state_after: case intro
α✝ : Type u
β : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s : β → β → Prop
t : γ → γ → Prop
a✝ : Ordinal.{u_3}
α : Type u_3
r : α → α → Prop
wo : IsWellOrder α r
a x : α
x✝ : ∀ (y : α), r y x → Acc r y
IH : ∀ (y : α), r y x → Acc (fun x x_1 => x < x_1) (typein r y)
b : α
h : typein r b < typein r x
⊢ Acc (fun x x_1 => x < x_1) (typein r b)

tactic: exact IH _ ((typein_lt_typein r).1 h)
state_before: case intro
α✝ : Type u
β : Type u_1
γ : Type u_2
r✝ : α✝ → α✝ → Prop
s : β → β → Prop
t : γ → γ → Prop
a✝ : Ordinal.{u_3}
α : Type u_3
r : α → α → Prop
wo : IsWellOrder α r
a x : α
x✝ : ∀ (y : α), r y x → Acc r y
IH : ∀ (y : α), r y x → Acc (fun x x_1 => x < x_1) (typein r y)
b : α
h : typein r b < typein r x
⊢ Acc (fun x x_1 => x < x_1) (typein r b)
state_after: no goals
Theorem: LinearEquiv.conj_trans
File: Mathlib/Algebra/Module/Equiv.lean

tactic: ext f x
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
K : Type u_6
S : Type u_7
M : Type u_8
M₁ : Type u_9
M₂ : Type u_10
M₃ : Type u_11
N₁ : Type u_12
N₂ : Type u_13
N₃ : Type u_14
N₄ : Type u_15
ι : Type u_16
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M₂
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M
inst✝¹ : Module R M₂
inst✝ : Module R M₃
e₁ : M ≃ₗ[R] M₂
e₂ : M₂ ≃ₗ[R] M₃
⊢ e₁.conj ≪≫ₗ e₂.conj = (e₁ ≪≫ₗ e₂).conj
state_after: case h.h
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
K : Type u_6
S : Type u_7
M : Type u_8
M₁ : Type u_9
M₂ : Type u_10
M₃ : Type u_11
N₁ : Type u_12
N₂ : Type u_13
N₃ : Type u_14
N₄ : Type u_15
ι : Type u_16
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M₂
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M
inst✝¹ : Module R M₂
inst✝ : Module R M₃
e₁ : M ≃ₗ[R] M₂
e₂ : M₂ ≃ₗ[R] M₃
f : Module.End R M
x : M₃
⊢ ((e₁.conj ≪≫ₗ e₂.conj) f) x = ((e₁ ≪≫ₗ e₂).conj f) x

tactic: rfl
state_before: case h.h
R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
k : Type u_5
K : Type u_6
S : Type u_7
M : Type u_8
M₁ : Type u_9
M₂ : Type u_10
M₃ : Type u_11
N₁ : Type u_12
N₂ : Type u_13
N₃ : Type u_14
N₄ : Type u_15
ι : Type u_16
inst✝⁶ : CommSemiring R
inst✝⁵ : AddCommMonoid M
inst✝⁴ : AddCommMonoid M₂
inst✝³ : AddCommMonoid M₃
inst✝² : Module R M
inst✝¹ : Module R M₂
inst✝ : Module R M₃
e₁ : M ≃ₗ[R] M₂
e₂ : M₂ ≃ₗ[R] M₃
f : Module.End R M
x : M₃
⊢ ((e₁.conj ≪≫ₗ e₂.conj) f) x = ((e₁ ≪≫ₗ e₂).conj f) x
state_after: no goals
Theorem: Subgroup.injective_noncommPiCoprod_of_independent
File: Mathlib/GroupTheory/NoncommPiCoprod.lean

tactic: apply MonoidHom.injective_noncommPiCoprod_of_independent
state_before: G : Type u_1
inst✝ : Group G
ι : Type u_2
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → ↥(H i)
hcomm : Pairwise fun i j => ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
⊢ Function.Injective ⇑(noncommPiCoprod hcomm)
state_after: case hind
G : Type u_1
inst✝ : Group G
ι : Type u_2
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → ↥(H i)
hcomm : Pairwise fun i j => ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
⊢ CompleteLattice.Independent fun i => (H i).subtype.range

case hinj
G : Type u_1
inst✝ : Group G
ι : Type u_2
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → ↥(H i)
hcomm : Pairwise fun i j => ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
⊢ ∀ (i : ι), Function.Injective ⇑(H i).subtype

tactic: simpa using hind
state_before: case hind
G : Type u_1
inst✝ : Group G
ι : Type u_2
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → ↥(H i)
hcomm : Pairwise fun i j => ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
⊢ CompleteLattice.Independent fun i => (H i).subtype.range
state_after: no goals

tactic: intro i
state_before: case hinj
G : Type u_1
inst✝ : Group G
ι : Type u_2
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → ↥(H i)
hcomm : Pairwise fun i j => ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
⊢ ∀ (i : ι), Function.Injective ⇑(H i).subtype
state_after: case hinj
G : Type u_1
inst✝ : Group G
ι : Type u_2
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → ↥(H i)
hcomm : Pairwise fun i j => ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
i : ι
⊢ Function.Injective ⇑(H i).subtype

tactic: exact Subtype.coe_injective
state_before: case hinj
G : Type u_1
inst✝ : Group G
ι : Type u_2
hdec : DecidableEq ι
hfin : Fintype ι
H : ι → Subgroup G
f g : (i : ι) → ↥(H i)
hcomm : Pairwise fun i j => ∀ (x y : G), x ∈ H i → y ∈ H j → Commute x y
hind : CompleteLattice.Independent H
i : ι
⊢ Function.Injective ⇑(H i).subtype
state_after: no goals
Theorem: mk_complex
File: Mathlib/Data/Complex/Cardinality.lean

tactic: rw [mk_congr Complex.equivRealProd, mk_prod, lift_id, mk_real, continuum_mul_self]
state_before: ⊢ #ℂ = 𝔠
state_after: no goals
Theorem: Polynomial.trinomial_mirror
File: Mathlib/Algebra/Polynomial/UnitTrinomial.lean

tactic: rw [mirror, trinomial_natTrailingDegree hkm hmn hu, reverse, trinomial_natDegree hkm hmn hw,
  trinomial_def, reflect_add, reflect_add, reflect_C_mul_X_pow, reflect_C_mul_X_pow,
  reflect_C_mul_X_pow, revAt_le (hkm.trans hmn).le, revAt_le hmn.le, revAt_le le_rfl, add_mul,
  add_mul, mul_assoc, mul_assoc, mul_assoc, ← pow_add, ← pow_add, ← pow_add,
  Nat.sub_add_cancel (hkm.trans hmn).le, Nat.sub_self, zero_add, add_comm, add_comm (C u * X ^ n),
  ← add_assoc, ← trinomial_def]
state_before: R : Type u_1
inst✝ : Semiring R
k m n : ℕ
u v w : R
hkm : k < m
hmn : m < n
hu : u ≠ 0
hw : w ≠ 0
⊢ (trinomial k m n u v w).mirror = trinomial k (n - m + k) n w v u
state_after: no goals
Theorem: TensorProduct.uncurry_apply
File: Mathlib/LinearAlgebra/TensorProduct/Basic.lean

tactic: rw [uncurry, LinearMap.flip_apply, lift.tmul]
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
f✝ f : M →ₗ[R] N →ₗ[R] P
m : M
n : N
⊢ ((uncurry R M N P) f) (m ⊗ₜ[R] n) = (f m) n
state_after: 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
f✝ f : M →ₗ[R] N →ₗ[R] P
m : M
n : N
⊢ (((LinearMap.lflip ∘ₗ LinearMap.id.flip) m) n) f = (f m) n

tactic: rfl
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
f✝ f : M →ₗ[R] N →ₗ[R] P
m : M
n : N
⊢ (((LinearMap.lflip ∘ₗ LinearMap.id.flip) m) n) f = (f m) n
state_after: no goals
Theorem: RingHom.IsIntegralElem.sub
File: Mathlib/RingTheory/IntegralClosure.lean

tactic: simpa only [sub_eq_add_neg] using hx.add f (hy.neg f)
state_before: R : Type u_1
A : Type u_2
B : Type u_3
S : Type u_4
inst✝⁵ : CommRing R
inst✝⁴ : CommRing A
inst✝³ : Ring B
inst✝² : CommRing S
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f✝¹ : R →+* S
f✝ : R →+* B
f : R →+* S
x y : S
hx : f.IsIntegralElem x
hy : f.IsIntegralElem y
⊢ f.IsIntegralElem (x - y)
state_after: no goals
Theorem: stereographic_apply_neg
File: Mathlib/Geometry/Manifold/Instances/Sphere.lean

tactic: simp [stereographic_apply, orthogonalProjection_orthogonalComplement_singleton_eq_zero]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
v✝ : E
v : ↑(sphere 0 1)
⊢ ↑(stereographic ⋯) (-v) = 0
state_after: no goals
Theorem: PartialHomeomorph.isOpen_extend_preimage
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rw [← extend_source f I]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s✝ t : Set M
s : Set E
hs : IsOpen s
⊢ IsOpen (f.source ∩ ↑(f.extend I) ⁻¹' s)
state_after: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s✝ t : Set M
s : Set E
hs : IsOpen s
⊢ IsOpen ((f.extend I).source ∩ ↑(f.extend I) ⁻¹' s)

tactic: exact isOpen_extend_preimage' f I hs
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : TopologicalSpace H
inst✝⁴ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝³ : NormedAddCommGroup E'
inst✝² : NormedSpace 𝕜 E'
inst✝¹ : TopologicalSpace H'
inst✝ : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s✝ t : Set M
s : Set E
hs : IsOpen s
⊢ IsOpen ((f.extend I).source ∩ ↑(f.extend I) ⁻¹' s)
state_after: no goals
Theorem: Quiver.Path.cast_nil
File: Mathlib/Combinatorics/Quiver/Cast.lean

tactic: subst_vars
state_before: U : Type u_1
inst✝ : Quiver U
u u' : U
hu : u = u'
⊢ cast hu hu nil = nil
state_after: U : Type u_1
inst✝ : Quiver U
u' : U
⊢ cast ⋯ ⋯ nil = nil

tactic: rfl
state_before: U : Type u_1
inst✝ : Quiver U
u' : U
⊢ cast ⋯ ⋯ nil = nil
state_after: no goals
Theorem: Valuation.isEquiv_iff_val_sub_one_lt_one
File: Mathlib/RingTheory/Valuation/Basic.lean

tactic: rw [isEquiv_iff_val_lt_one]
state_before: K : Type u_1
F : Type u_2
R : Type u_3
inst✝³ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
⊢ v.IsEquiv v' ↔ ∀ {x : K}, v (x - 1) < 1 ↔ v' (x - 1) < 1
state_after: K : Type u_1
F : Type u_2
R : Type u_3
inst✝³ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
⊢ (∀ {x : K}, v x < 1 ↔ v' x < 1) ↔ ∀ {x : K}, v (x - 1) < 1 ↔ v' (x - 1) < 1

tactic: exact (Equiv.subRight 1).surjective.forall
state_before: K : Type u_1
F : Type u_2
R : Type u_3
inst✝³ : DivisionRing K
Γ₀ : Type u_4
Γ'₀ : Type u_5
Γ''₀ : Type u_6
inst✝² : LinearOrderedCommMonoidWithZero Γ''₀
inst✝¹ : LinearOrderedCommGroupWithZero Γ₀
inst✝ : LinearOrderedCommGroupWithZero Γ'₀
v : Valuation K Γ₀
v' : Valuation K Γ'₀
⊢ (∀ {x : K}, v x < 1 ↔ v' x < 1) ↔ ∀ {x : K}, v (x - 1) < 1 ↔ v' (x - 1) < 1
state_after: no goals
Theorem: MeasureTheory.Measure.map_add
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp [← mapₗ_apply_of_measurable hf]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ι : Type u_5
R : Type u_6
R' : Type u_7
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ✝ μ₁ μ₂ μ₃ ν✝ ν' ν₁ ν₂ : Measure α
s s' t : Set α
μ ν : Measure α
f : α → β
hf : Measurable f
⊢ map f (μ + ν) = map f μ + map f ν
state_after: no goals
Theorem: List.indexOf_get?
File: Mathlib/Data/List/Basic.lean

tactic: simp [h]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
inst✝ : DecidableEq α
a : α
l : List α
h : a ∈ l
⊢ l.get? (indexOf a l) = some a
state_after: no goals