1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Disjoint.of_orderEmbedding
File: Mathlib/Order/Hom/Basic.lean

tactic: intro h x h₁ h₂
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : PartialOrder α
inst✝² : PartialOrder β
f : α ↪o β
inst✝¹ : OrderBot α
inst✝ : OrderBot β
a₁ a₂ : α
⊢ Disjoint (f a₁) (f a₂) → Disjoint a₁ a₂
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : PartialOrder α
inst✝² : PartialOrder β
f : α ↪o β
inst✝¹ : OrderBot α
inst✝ : OrderBot β
a₁ a₂ : α
h : Disjoint (f a₁) (f a₂)
x : α
h₁ : x ≤ a₁
h₂ : x ≤ a₂
⊢ x ≤ ⊥

tactic: rw [← f.le_iff_le] at h₁ h₂ ⊢
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : PartialOrder α
inst✝² : PartialOrder β
f : α ↪o β
inst✝¹ : OrderBot α
inst✝ : OrderBot β
a₁ a₂ : α
h : Disjoint (f a₁) (f a₂)
x : α
h₁ : x ≤ a₁
h₂ : x ≤ a₂
⊢ x ≤ ⊥
state_after: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : PartialOrder α
inst✝² : PartialOrder β
f : α ↪o β
inst✝¹ : OrderBot α
inst✝ : OrderBot β
a₁ a₂ : α
h : Disjoint (f a₁) (f a₂)
x : α
h₁ : f x ≤ f a₁
h₂ : f x ≤ f a₂
⊢ f x ≤ f ⊥

tactic: calc
  f x ≤ ⊥ := h h₁ h₂
  _ ≤ f ⊥ := bot_le
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
δ : Type u_5
inst✝³ : PartialOrder α
inst✝² : PartialOrder β
f : α ↪o β
inst✝¹ : OrderBot α
inst✝ : OrderBot β
a₁ a₂ : α
h : Disjoint (f a₁) (f a₂)
x : α
h₁ : f x ≤ f a₁
h₂ : f x ≤ f a₂
⊢ f x ≤ f ⊥
state_after: no goals
Theorem: VectorBundleCore.localTriv_symm_apply
File: Mathlib/Topology/VectorBundle/Basic.lean

tactic: apply (Z.localTriv i).symm_apply hb v
state_before: R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace F E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_5
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ Z.baseSet i
v : F
⊢ (Z.localTriv i).symm b v = (Z.coordChange i (Z.indexAt b) b) v
state_after: no goals
Theorem: ENat.succ_def
File: Mathlib/Data/ENat/Basic.lean

tactic: cases m <;> rfl
state_before: m✝ n m : ℕ∞
⊢ Order.succ m = m + 1
state_after: no goals
Theorem: HomologicalComplex.d_eqToHom
File: Mathlib/Algebra/Homology/DifferentialObject.lean

tactic: cases h
state_before: β : Type u_1
inst✝² : AddCommGroup β
b : β
V : Type u_2
inst✝¹ : Category.{u_3, u_2} V
inst✝ : HasZeroMorphisms V
X : HomologicalComplex V (ComplexShape.up' b)
x y z : β
h : y = z
⊢ X.d x y ≫ eqToHom ⋯ = X.d x z
state_after: case refl
β : Type u_1
inst✝² : AddCommGroup β
b : β
V : Type u_2
inst✝¹ : Category.{u_3, u_2} V
inst✝ : HasZeroMorphisms V
X : HomologicalComplex V (ComplexShape.up' b)
x y : β
⊢ X.d x y ≫ eqToHom ⋯ = X.d x y

tactic: simp
state_before: case refl
β : Type u_1
inst✝² : AddCommGroup β
b : β
V : Type u_2
inst✝¹ : Category.{u_3, u_2} V
inst✝ : HasZeroMorphisms V
X : HomologicalComplex V (ComplexShape.up' b)
x y : β
⊢ X.d x y ≫ eqToHom ⋯ = X.d x y
state_after: no goals
Theorem: HomologicalComplex.restrictionMap_f'
File: Mathlib/Algebra/Homology/Embedding/Restriction.lean

tactic: subst hi
state_before: ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
C : Type u_3
inst✝³ : Category.{u_4, u_3} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
K L M : HomologicalComplex C c'
φ : K ⟶ L
φ' : L ⟶ M
e : c.Embedding c'
inst✝ : e.IsRelIff
i : ι
i' : ι'
hi : e.f i = i'
⊢ (restrictionMap φ e).f i = (K.restrictionXIso e hi).hom ≫ φ.f i' ≫ (L.restrictionXIso e hi).inv
state_after: ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
C : Type u_3
inst✝³ : Category.{u_4, u_3} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
K L M : HomologicalComplex C c'
φ : K ⟶ L
φ' : L ⟶ M
e : c.Embedding c'
inst✝ : e.IsRelIff
i : ι
⊢ (restrictionMap φ e).f i = (K.restrictionXIso e ⋯).hom ≫ φ.f (e.f i) ≫ (L.restrictionXIso e ⋯).inv

tactic: simp [restrictionXIso]
state_before: ι : Type u_1
ι' : Type u_2
c : ComplexShape ι
c' : ComplexShape ι'
C : Type u_3
inst✝³ : Category.{u_4, u_3} C
inst✝² : HasZeroMorphisms C
inst✝¹ : HasZeroObject C
K L M : HomologicalComplex C c'
φ : K ⟶ L
φ' : L ⟶ M
e : c.Embedding c'
inst✝ : e.IsRelIff
i : ι
⊢ (restrictionMap φ e).f i = (K.restrictionXIso e ⋯).hom ≫ φ.f (e.f i) ≫ (L.restrictionXIso e ⋯).inv
state_after: no goals
Theorem: CategoryTheory.Limits.pullbackZeroZeroIso_hom_snd
File: Mathlib/CategoryTheory/Limits/Constructions/ZeroObjects.lean

tactic: simp [← Iso.eq_inv_comp]
state_before: C : Type u_1
inst✝³ : Category.{u_2, u_1} C
inst✝² : HasZeroObject C
inst✝¹ : HasZeroMorphisms C
X Y : C
inst✝ : HasBinaryProduct X Y
⊢ (pullbackZeroZeroIso X Y).hom ≫ prod.snd = pullback.snd
state_after: no goals
Theorem: Subspace.dual_finrank_eq
File: Mathlib/LinearAlgebra/Dual.lean

tactic: by_cases h : FiniteDimensional K V
state_before: K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W : Subspace K V
⊢ finrank K (Module.Dual K V) = finrank K V
state_after: case pos
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W : Subspace K V
h : FiniteDimensional K V
⊢ finrank K (Module.Dual K V) = finrank K V

case neg
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W : Subspace K V
h : ¬FiniteDimensional K V
⊢ finrank K (Module.Dual K V) = finrank K V

tactic: rw [finrank_eq_zero_of_basis_imp_false, finrank_eq_zero_of_basis_imp_false]
state_before: case neg
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W : Subspace K V
h : ¬FiniteDimensional K V
⊢ finrank K (Module.Dual K V) = finrank K V
state_after: case neg
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W : Subspace K V
h : ¬FiniteDimensional K V
⊢ ∀ (s : Finset V), Basis (↑↑s) K V → False

case neg
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W : Subspace K V
h : ¬FiniteDimensional K V
⊢ ∀ (s : Finset (Module.Dual K V)), Basis (↑↑s) K (Module.Dual K V) → False

tactic: classical exact LinearEquiv.finrank_eq (Basis.ofVectorSpace K V).toDualEquiv.symm
state_before: case pos
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W : Subspace K V
h : FiniteDimensional K V
⊢ finrank K (Module.Dual K V) = finrank K V
state_after: no goals

tactic: exact LinearEquiv.finrank_eq (Basis.ofVectorSpace K V).toDualEquiv.symm
state_before: case pos
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W : Subspace K V
h : FiniteDimensional K V
⊢ finrank K (Module.Dual K V) = finrank K V
state_after: no goals

tactic: exact fun _ b ↦ h (Module.Finite.of_basis b)
state_before: case neg
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W : Subspace K V
h : ¬FiniteDimensional K V
⊢ ∀ (s : Finset V), Basis (↑↑s) K V → False
state_after: no goals

tactic: exact fun _ b ↦ h ((Module.finite_dual_iff K).mp <| Module.Finite.of_basis b)
state_before: case neg
K : Type u
V : Type v
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
W : Subspace K V
h : ¬FiniteDimensional K V
⊢ ∀ (s : Finset (Module.Dual K V)), Basis (↑↑s) K (Module.Dual K V) → False
state_after: no goals
Theorem: Finset.mem_offDiag
File: Mathlib/Data/Finset/Prod.lean

tactic: simp [offDiag, and_assoc]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq α
s t : Finset α
x : α × α
⊢ x ∈ s.offDiag ↔ x.1 ∈ s ∧ x.2 ∈ s ∧ x.1 ≠ x.2
state_after: no goals
Theorem: right_eq_mul₀
File: Mathlib/Algebra/GroupWithZero/Basic.lean

tactic: rw [eq_comm, mul_eq_right₀ hb]
state_before: α : Type u_1
M₀ : Type u_2
G₀ : Type u_3
M₀' : Type u_4
G₀' : Type u_5
F : Type u_6
F' : Type u_7
inst✝ : CancelMonoidWithZero M₀
a b c : M₀
hb : b ≠ 0
⊢ b = a * b ↔ a = 1
state_after: no goals
Theorem: PowerBasis.finrank
File: Mathlib/RingTheory/PowerBasis.lean

tactic: rw [FiniteDimensional.finrank_eq_card_basis pb.basis, Fintype.card_fin]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝⁸ : CommRing R
inst✝⁷ : Ring S
inst✝⁶ : Algebra R S
A : Type u_4
B : Type u_5
inst✝⁵ : CommRing A
inst✝⁴ : CommRing B
inst✝³ : IsDomain B
inst✝² : Algebra A B
K : Type u_6
inst✝¹ : Field K
inst✝ : StrongRankCondition R
pb : PowerBasis R S
⊢ FiniteDimensional.finrank R S = pb.dim
state_after: no goals
Theorem: Stream'.WSeq.LiftRel.swap_lem
File: Mathlib/Data/Seq/WSeq.lean

tactic: refine ⟨swap (LiftRel R), h, fun {s t} (h : LiftRel R t s) => ?_⟩
state_before: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
s1 : WSeq α
s2 : WSeq β
h : LiftRel R s1 s2
⊢ LiftRel (swap R) s2 s1
state_after: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
s1 : WSeq α
s2 : WSeq β
h✝ : LiftRel R s1 s2
s : WSeq β
t : WSeq α
h : LiftRel R t s
⊢ Computation.LiftRel (LiftRelO (swap R) (swap (LiftRel R))) s.destruct t.destruct

tactic: rw [← LiftRelO.swap, Computation.LiftRel.swap]
state_before: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
s1 : WSeq α
s2 : WSeq β
h✝ : LiftRel R s1 s2
s : WSeq β
t : WSeq α
h : LiftRel R t s
⊢ Computation.LiftRel (LiftRelO (swap R) (swap (LiftRel R))) s.destruct t.destruct
state_after: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
s1 : WSeq α
s2 : WSeq β
h✝ : LiftRel R s1 s2
s : WSeq β
t : WSeq α
h : LiftRel R t s
⊢ Computation.LiftRel (LiftRelO R (LiftRel R)) t.destruct s.destruct

tactic: apply liftRel_destruct h
state_before: α : Type u
β : Type v
γ : Type w
R : α → β → Prop
s1 : WSeq α
s2 : WSeq β
h✝ : LiftRel R s1 s2
s : WSeq β
t : WSeq α
h : LiftRel R t s
⊢ Computation.LiftRel (LiftRelO R (LiftRel R)) t.destruct s.destruct
state_after: no goals
Theorem: LinearEquiv.trans_dualMap_symm_flip
File: Mathlib/LinearAlgebra/PerfectPairing.lean

tactic: ext
state_before: R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsReflexive R M
e : N ≃ₗ[R] Dual R M
⊢ ↑(e ≪≫ₗ e.flip.symm.dualMap) = Dual.eval R N
state_after: case h.h
R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsReflexive R M
e : N ≃ₗ[R] Dual R M
x✝¹ : N
x✝ : Dual R N
⊢ (↑(e ≪≫ₗ e.flip.symm.dualMap) x✝¹) x✝ = ((Dual.eval R N) x✝¹) x✝

tactic: simp [symm_flip]
state_before: case h.h
R : Type u_1
M : Type u_2
N : Type u_3
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : AddCommGroup N
inst✝¹ : Module R N
inst✝ : IsReflexive R M
e : N ≃ₗ[R] Dual R M
x✝¹ : N
x✝ : Dual R N
⊢ (↑(e ≪≫ₗ e.flip.symm.dualMap) x✝¹) x✝ = ((Dual.eval R N) x✝¹) x✝
state_after: no goals
Theorem: Polynomial.mem_lift_of_splits_of_roots_mem_range
File: Mathlib/Algebra/Polynomial/Splits.lean

tactic: rw [eq_prod_roots_of_monic_of_splits_id hm hs, lifts_iff_liftsRing]
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝⁴ : CommRing R
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Field F
i : K →+* L
inst✝ : Algebra R K
f : K[X]
hs : Splits (RingHom.id K) f
hm : f.Monic
hr : ∀ a ∈ f.roots, a ∈ (algebraMap R K).range
⊢ f ∈ lifts (algebraMap R K)
state_after: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝⁴ : CommRing R
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Field F
i : K →+* L
inst✝ : Algebra R K
f : K[X]
hs : Splits (RingHom.id K) f
hm : f.Monic
hr : ∀ a ∈ f.roots, a ∈ (algebraMap R K).range
⊢ (Multiset.map (fun a => X - C a) f.roots).prod ∈ liftsRing (algebraMap R K)

tactic: refine Subring.multiset_prod_mem _ _ fun P hP => ?_
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝⁴ : CommRing R
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Field F
i : K →+* L
inst✝ : Algebra R K
f : K[X]
hs : Splits (RingHom.id K) f
hm : f.Monic
hr : ∀ a ∈ f.roots, a ∈ (algebraMap R K).range
⊢ (Multiset.map (fun a => X - C a) f.roots).prod ∈ liftsRing (algebraMap R K)
state_after: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝⁴ : CommRing R
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Field F
i : K →+* L
inst✝ : Algebra R K
f : K[X]
hs : Splits (RingHom.id K) f
hm : f.Monic
hr : ∀ a ∈ f.roots, a ∈ (algebraMap R K).range
P : K[X]
hP : P ∈ Multiset.map (fun a => X - C a) f.roots
⊢ P ∈ liftsRing (algebraMap R K)

tactic: obtain ⟨b, hb, rfl⟩ := Multiset.mem_map.1 hP
state_before: R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝⁴ : CommRing R
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Field F
i : K →+* L
inst✝ : Algebra R K
f : K[X]
hs : Splits (RingHom.id K) f
hm : f.Monic
hr : ∀ a ∈ f.roots, a ∈ (algebraMap R K).range
P : K[X]
hP : P ∈ Multiset.map (fun a => X - C a) f.roots
⊢ P ∈ liftsRing (algebraMap R K)
state_after: case intro.intro
R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝⁴ : CommRing R
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Field F
i : K →+* L
inst✝ : Algebra R K
f : K[X]
hs : Splits (RingHom.id K) f
hm : f.Monic
hr : ∀ a ∈ f.roots, a ∈ (algebraMap R K).range
b : K
hb : b ∈ f.roots
hP : X - C b ∈ Multiset.map (fun a => X - C a) f.roots
⊢ X - C b ∈ liftsRing (algebraMap R K)

tactic: exact Subring.sub_mem _ (X_mem_lifts _) (C'_mem_lifts (hr _ hb))
state_before: case intro.intro
R : Type u_1
F : Type u
K : Type v
L : Type w
inst✝⁴ : CommRing R
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Field F
i : K →+* L
inst✝ : Algebra R K
f : K[X]
hs : Splits (RingHom.id K) f
hm : f.Monic
hr : ∀ a ∈ f.roots, a ∈ (algebraMap R K).range
b : K
hb : b ∈ f.roots
hP : X - C b ∈ Multiset.map (fun a => X - C a) f.roots
⊢ X - C b ∈ liftsRing (algebraMap R K)
state_after: no goals
Theorem: Finset.forall_image₂_iff
File: Mathlib/Data/Finset/NAry.lean

tactic: simp_rw [← mem_coe, coe_image₂, forall_image2_iff]
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
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
p : γ → Prop
⊢ (∀ z ∈ image₂ f s t, p z) ↔ ∀ x ∈ s, ∀ y ∈ t, p (f x y)
state_after: no goals
Theorem: CategoryTheory.IsPullback.of_map_of_faithful
File: Mathlib/CategoryTheory/Limits/Shapes/CommSq.lean

tactic: simpa only [F.map_comp] using H.w
state_before: C : Type u₁
inst✝³ : Category.{v₁, u₁} C
D : Type u₂
inst✝² : Category.{v₂, u₂} D
F : C ⥤ D
W X Y Z : C
f : W ⟶ X
g : W ⟶ Y
h : X ⟶ Z
i : Y ⟶ Z
inst✝¹ : ReflectsLimit (cospan h i) F
inst✝ : F.Faithful
H : IsPullback (F.map f) (F.map g) (F.map h) (F.map i)
⊢ F.map (f ≫ h) = F.map (g ≫ i)
state_after: no goals
Theorem: Set.equitableOn_iff_exists_eq_eq_add_one
File: Mathlib/Data/Set/Equitable.lean

tactic: simp_rw [equitableOn_iff_exists_le_le_add_one, Nat.le_and_le_add_one_iff]
state_before: α : Type u_1
β : Type u_2
s : Set α
f : α → ℕ
⊢ s.EquitableOn f ↔ ∃ b, ∀ a ∈ s, f a = b ∨ f a = b + 1
state_after: no goals
Theorem: nhdsWithin_inter
File: Mathlib/Topology/ContinuousOn.lean

tactic: delta nhdsWithin
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s t : Set α
⊢ 𝓝[s ∩ t] a = 𝓝[s] a ⊓ 𝓝[t] a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s t : Set α
⊢ 𝓝 a ⊓ 𝓟 (s ∩ t) = 𝓝 a ⊓ 𝓟 s ⊓ (𝓝 a ⊓ 𝓟 t)

tactic: rw [inf_left_comm, inf_assoc, inf_principal, ← inf_assoc, inf_idem]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝ : TopologicalSpace α
a : α
s t : Set α
⊢ 𝓝 a ⊓ 𝓟 (s ∩ t) = 𝓝 a ⊓ 𝓟 s ⊓ (𝓝 a ⊓ 𝓟 t)
state_after: no goals
Theorem: Module.ext'
File: Mathlib/Algebra/Module/Defs.lean

tactic: ext
state_before: α : Type u_1
R✝ : Type u_2
k : Type u_3
S : Type u_4
M✝ : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
R : Type u_9
inst✝¹ : Semiring R
M : Type u_10
inst✝ : AddCommMonoid M
P Q : Module R M
w : ∀ (r : R) (m : M), r • m = r • m
⊢ P = Q
state_after: case smul.h.h
α : Type u_1
R✝ : Type u_2
k : Type u_3
S : Type u_4
M✝ : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
R : Type u_9
inst✝¹ : Semiring R
M : Type u_10
inst✝ : AddCommMonoid M
P Q : Module R M
w : ∀ (r : R) (m : M), r • m = r • m
x✝¹ : R
x✝ : M
⊢ SMul.smul x✝¹ x✝ = SMul.smul x✝¹ x✝

tactic: exact w _ _
state_before: case smul.h.h
α : Type u_1
R✝ : Type u_2
k : Type u_3
S : Type u_4
M✝ : Type u_5
M₂ : Type u_6
M₃ : Type u_7
ι : Type u_8
R : Type u_9
inst✝¹ : Semiring R
M : Type u_10
inst✝ : AddCommMonoid M
P Q : Module R M
w : ∀ (r : R) (m : M), r • m = r • m
x✝¹ : R
x✝ : M
⊢ SMul.smul x✝¹ x✝ = SMul.smul x✝¹ x✝
state_after: no goals
Theorem: WittVector.init_neg
File: Mathlib/RingTheory/WittVector/InitTail.lean

tactic: init_ring using wittNeg_vars
state_before: p : ℕ
hp : Fact (Nat.Prime p)
n✝ : ℕ
R : Type u_1
inst✝ : CommRing R
x : 𝕎 R
n : ℕ
⊢ init n (-x) = init n (-init n x)
state_after: no goals
Theorem: LieIdeal.map_coeSubmodule
File: Mathlib/Algebra/Lie/Submodule.lean

tactic: rw [SetLike.ext'_iff, LieSubmodule.coe_toSubmodule, h, Submodule.map_coe]
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I I₂ : LieIdeal R L
J : LieIdeal R L'
h : ↑(map f I) = ⇑f '' ↑I
⊢ ↑(map f I) = Submodule.map ↑f ↑I
state_after: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I I₂ : LieIdeal R L
J : LieIdeal R L'
h : ↑(map f I) = ⇑f '' ↑I
⊢ ⇑f '' ↑I = ⇑↑f '' ↑↑I

tactic: rfl
state_before: R : Type u
L : Type v
L' : Type w₂
M : Type w
M' : Type w₁
inst✝¹² : CommRing R
inst✝¹¹ : LieRing L
inst✝¹⁰ : LieAlgebra R L
inst✝⁹ : LieRing L'
inst✝⁸ : LieAlgebra R L'
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
inst✝⁵ : LieRingModule L M
inst✝⁴ : LieModule R L M
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
inst✝¹ : LieRingModule L M'
inst✝ : LieModule R L M'
f : L →ₗ⁅R⁆ L'
I I₂ : LieIdeal R L
J : LieIdeal R L'
h : ↑(map f I) = ⇑f '' ↑I
⊢ ⇑f '' ↑I = ⇑↑f '' ↑↑I
state_after: no goals
Theorem: LinearMap.polar_eq_iInter
File: Mathlib/Analysis/LocallyConvex/Polar.lean

tactic: ext
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : NormedCommRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
s : Set E
⊢ B.polar s = ⋂ x ∈ s, {y | ‖(B x) y‖ ≤ 1}
state_after: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : NormedCommRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
s : Set E
x✝ : F
⊢ x✝ ∈ B.polar s ↔ x✝ ∈ ⋂ x ∈ s, {y | ‖(B x) y‖ ≤ 1}

tactic: simp only [polar_mem_iff, Set.mem_iInter, Set.mem_setOf_eq]
state_before: case h
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : NormedCommRing 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜
s : Set E
x✝ : F
⊢ x✝ ∈ B.polar s ↔ x✝ ∈ ⋂ x ∈ s, {y | ‖(B x) y‖ ≤ 1}
state_after: no goals
Theorem: affineHomeomorph_image_I
File: Mathlib/Topology/UnitInterval.lean

tactic: simp [h]
state_before: 𝕜 : Type u_1
inst✝² : LinearOrderedField 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : TopologicalRing 𝕜
a b : 𝕜
h : 0 < a
⊢ ⇑(affineHomeomorph a b ⋯) '' Icc 0 1 = Icc b (a + b)
state_after: no goals
Theorem: Metric.uniformEmbedding_iff
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: rw [uniformEmbedding_iff, and_comm, uniformInducing_iff]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝¹ : PseudoMetricSpace α
x y z : α
δ ε ε₁ ε₂ : ℝ
s : Set α
inst✝ : PseudoMetricSpace β
f : α → β
⊢ UniformEmbedding f ↔
    Function.Injective f ∧ UniformContinuous f ∧ ∀ δ > 0, ∃ ε > 0, ∀ {a b : α}, dist (f a) (f b) < ε → dist a b < δ
state_after: no goals
Theorem: UniqueMul.of_subsingleton
File: Mathlib/Algebra/Group/UniqueProds.lean

tactic: simp [UniqueMul, eq_iff_true_of_subsingleton]
state_before: G : Type u_1
H : Type u_2
inst✝² : Mul G
inst✝¹ : Mul H
A B : Finset G
a0 b0 : G
inst✝ : Subsingleton G
⊢ UniqueMul A B a0 b0
state_after: no goals
Theorem: Matrix.cons_vecAlt1
File: Mathlib/Data/Fin/VecNotation.lean

tactic: omega
state_before: α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
h : m + 1 + 1 = n + 1 + (n + 1)
x y : α
u : Fin m → α
⊢ m = n + n
state_after: no goals

tactic: ext i
state_before: α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
h : m + 1 + 1 = n + 1 + (n + 1)
x y : α
u : Fin m → α
⊢ vecAlt1 h (vecCons x (vecCons y u)) = vecCons y (vecAlt1 ⋯ u)
state_after: case h
α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
h : m + 1 + 1 = n + 1 + (n + 1)
x y : α
u : Fin m → α
i : Fin (n + 1)
⊢ vecAlt1 h (vecCons x (vecCons y u)) i = vecCons y (vecAlt1 ⋯ u) i

tactic: simp_rw [vecAlt1]
state_before: case h
α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
h : m + 1 + 1 = n + 1 + (n + 1)
x y : α
u : Fin m → α
i : Fin (n + 1)
⊢ vecAlt1 h (vecCons x (vecCons y u)) i = vecCons y (vecAlt1 ⋯ u) i
state_after: case h
α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
h : m + 1 + 1 = n + 1 + (n + 1)
x y : α
u : Fin m → α
i : Fin (n + 1)
⊢ vecCons x (vecCons y u) ⟨↑i + ↑i + 1, ⋯⟩ = vecCons y (vecAlt1 ⋯ u) i

tactic: rcases i with ⟨⟨⟩ | i, hi⟩
state_before: case h
α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
h : m + 1 + 1 = n + 1 + (n + 1)
x y : α
u : Fin m → α
i : Fin (n + 1)
⊢ vecCons x (vecCons y u) ⟨↑i + ↑i + 1, ⋯⟩ = vecCons y (vecAlt1 ⋯ u) i
state_after: case h.mk.zero
α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
h : m + 1 + 1 = n + 1 + (n + 1)
x y : α
u : Fin m → α
hi : 0 < n + 1
⊢ vecCons x (vecCons y u) ⟨↑⟨0, hi⟩ + ↑⟨0, hi⟩ + 1, ⋯⟩ = vecCons y (vecAlt1 ⋯ u) ⟨0, hi⟩

case h.mk.succ
α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
h : m + 1 + 1 = n + 1 + (n + 1)
x y : α
u : Fin m → α
i : ℕ
hi : i + 1 < n + 1
⊢ vecCons x (vecCons y u) ⟨↑⟨i + 1, hi⟩ + ↑⟨i + 1, hi⟩ + 1, ⋯⟩ = vecCons y (vecAlt1 ⋯ u) ⟨i + 1, hi⟩

tactic: rfl
state_before: case h.mk.zero
α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
h : m + 1 + 1 = n + 1 + (n + 1)
x y : α
u : Fin m → α
hi : 0 < n + 1
⊢ vecCons x (vecCons y u) ⟨↑⟨0, hi⟩ + ↑⟨0, hi⟩ + 1, ⋯⟩ = vecCons y (vecAlt1 ⋯ u) ⟨0, hi⟩
state_after: no goals

tactic: simp [vecAlt1, Nat.add_right_comm, ← Nat.add_assoc]
state_before: case h.mk.succ
α : Type u
m n o : ℕ
m' : Type u_1
n' : Type u_2
o' : Type u_3
h : m + 1 + 1 = n + 1 + (n + 1)
x y : α
u : Fin m → α
i : ℕ
hi : i + 1 < n + 1
⊢ vecCons x (vecCons y u) ⟨↑⟨i + 1, hi⟩ + ↑⟨i + 1, hi⟩ + 1, ⋯⟩ = vecCons y (vecAlt1 ⋯ u) ⟨i + 1, hi⟩
state_after: no goals
Theorem: MeasureTheory.setIntegral_nonpos_ae
File: Mathlib/MeasureTheory/Integral/SetIntegral.lean

tactic: rwa [EventuallyLE, ae_restrict_iff' hs]
state_before: X : Type u_1
Y : Type u_2
E : Type u_3
F : Type u_4
inst✝ : MeasurableSpace X
μ : Measure X
f : X → ℝ
s : Set X
hs : MeasurableSet s
hf : ∀ᵐ (x : X) ∂μ, x ∈ s → f x ≤ 0
⊢ f ≤ᶠ[ae (μ.restrict s)] 0
state_after: no goals
Theorem: Int.one_ne_zero
File: Mathlib/Data/Int/Defs.lean

tactic: decide
state_before: a b c d m n : ℤ
⊢ 1 ≠ 0
state_after: no goals
Theorem: Real.lt_rpow_iff_log_lt
File: Mathlib/Analysis/SpecialFunctions/Pow/Real.lean

tactic: rw [← Real.log_lt_log_iff hx (Real.rpow_pos_of_pos hy z), Real.log_rpow hy]
state_before: x y z : ℝ
n : ℕ
hx : 0 < x
hy : 0 < y
⊢ x < y ^ z ↔ log x < z * log y
state_after: no goals