1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: isPreconnected_of_forall_pair
File: Mathlib/Topology/Connected/Basic.lean

tactic: rcases eq_empty_or_nonempty s with (rfl | ⟨x, hx⟩)
state_before: α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s✝ t u v s : Set α
H : ∀ x ∈ s, ∀ y ∈ s, ∃ t ⊆ s, x ∈ t ∧ y ∈ t ∧ IsPreconnected t
⊢ IsPreconnected s
state_after: case inl
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
H : ∀ x ∈ ∅, ∀ y ∈ ∅, ∃ t ⊆ ∅, x ∈ t ∧ y ∈ t ∧ IsPreconnected t
⊢ IsPreconnected ∅

case inr.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s✝ t u v s : Set α
H : ∀ x ∈ s, ∀ y ∈ s, ∃ t ⊆ s, x ∈ t ∧ y ∈ t ∧ IsPreconnected t
x : α
hx : x ∈ s
⊢ IsPreconnected s

tactic: exacts [isPreconnected_empty, isPreconnected_of_forall x fun y => H x hx y]
state_before: case inl
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s t u v : Set α
H : ∀ x ∈ ∅, ∀ y ∈ ∅, ∃ t ⊆ ∅, x ∈ t ∧ y ∈ t ∧ IsPreconnected t
⊢ IsPreconnected ∅

case inr.intro
α : Type u
β : Type v
ι : Type u_1
π : ι → Type u_2
inst✝ : TopologicalSpace α
s✝ t u v s : Set α
H : ∀ x ∈ s, ∀ y ∈ s, ∃ t ⊆ s, x ∈ t ∧ y ∈ t ∧ IsPreconnected t
x : α
hx : x ∈ s
⊢ IsPreconnected s
state_after: no goals
Theorem: CochainComplex.mappingCone.inr_fst_assoc
File: Mathlib/Algebra/Homology/HomotopyCategory/MappingCone.lean

tactic: obtain rfl : e = f := by omega
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
d e f : ℤ
γ : Cochain F K d
he : 1 + d = e
hf : 0 + e = f
⊢ (Cochain.ofHom (inr φ)).comp ((↑(fst φ)).comp γ he) hf = 0
state_after: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
d e : ℤ
γ : Cochain F K d
he : 1 + d = e
hf : 0 + e = e
⊢ (Cochain.ofHom (inr φ)).comp ((↑(fst φ)).comp γ he) hf = 0

tactic: rw [← Cochain.comp_assoc_of_first_is_zero_cochain, inr_fst, Cochain.zero_comp]
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
d e : ℤ
γ : Cochain F K d
he : 1 + d = e
hf : 0 + e = e
⊢ (Cochain.ofHom (inr φ)).comp ((↑(fst φ)).comp γ he) hf = 0
state_after: no goals

tactic: omega
state_before: C : Type u_1
inst✝² : Category.{u_2, u_1} C
inst✝¹ : Preadditive C
F G : CochainComplex C ℤ
φ : F ⟶ G
inst✝ : HasHomotopyCofiber φ
K : CochainComplex C ℤ
d e f : ℤ
γ : Cochain F K d
he : 1 + d = e
hf : 0 + e = f
⊢ e = f
state_after: no goals
Theorem: MeasureTheory.Measure.rnDeriv_smul_left_of_ne_top
File: Mathlib/MeasureTheory/Decomposition/Lebesgue.lean

tactic: have h : (r.toNNReal • ν).rnDeriv μ =ᵐ[μ] r.toNNReal • ν.rnDeriv μ :=
  rnDeriv_smul_left ν μ r.toNNReal
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ ν μ : Measure α
inst✝¹ : IsFiniteMeasure ν
inst✝ : ν.HaveLebesgueDecomposition μ
r : ℝ≥0∞
hr : r ≠ ⊤
⊢ (r • ν).rnDeriv μ =ᶠ[ae μ] r • ν.rnDeriv μ
state_after: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ ν μ : Measure α
inst✝¹ : IsFiniteMeasure ν
inst✝ : ν.HaveLebesgueDecomposition μ
r : ℝ≥0∞
hr : r ≠ ⊤
h : (r.toNNReal • ν).rnDeriv μ =ᶠ[ae μ] r.toNNReal • ν.rnDeriv μ
⊢ (r • ν).rnDeriv μ =ᶠ[ae μ] r • ν.rnDeriv μ

tactic: simpa [ENNReal.smul_def, ENNReal.coe_toNNReal hr] using h
state_before: α : Type u_1
β : Type u_2
m : MeasurableSpace α
μ✝ ν✝ ν μ : Measure α
inst✝¹ : IsFiniteMeasure ν
inst✝ : ν.HaveLebesgueDecomposition μ
r : ℝ≥0∞
hr : r ≠ ⊤
h : (r.toNNReal • ν).rnDeriv μ =ᶠ[ae μ] r.toNNReal • ν.rnDeriv μ
⊢ (r • ν).rnDeriv μ =ᶠ[ae μ] r • ν.rnDeriv μ
state_after: no goals
Theorem: List.Pairwise.imp_mem
File: .lake/packages/batteries/Batteries/Data/List/Pairwise.lean

tactic: simp (config := { contextual := true })
state_before: α : Type u_1
R : α → α → Prop
l : List α
⊢ ∀ {a b : α}, a ∈ l → b ∈ l → (R a b ↔ a ∈ l → b ∈ l → R a b)
state_after: no goals
Theorem: mabs_le_mabs_of_le_one
File: Mathlib/Algebra/Order/Group/Abs.lean

tactic: rw [mabs_of_le_one ha, mabs_of_le_one (hab.trans ha)]
state_before: α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝ b✝ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
ha : a ≤ 1
hab : b ≤ a
⊢ mabs a ≤ mabs b
state_after: α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝ b✝ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
ha : a ≤ 1
hab : b ≤ a
⊢ a⁻¹ ≤ b⁻¹

tactic: exact inv_le_inv_iff.mpr hab
state_before: α : Type u_1
inst✝³ : Group α
inst✝² : LinearOrder α
a✝ b✝ : α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b c : α
inst✝ : CovariantClass α α (swap fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
ha : a ≤ 1
hab : b ≤ a
⊢ a⁻¹ ≤ b⁻¹
state_after: no goals
Theorem: EMetric.hausdorffEdist_zero_iff_eq_of_closed
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: rw [hausdorffEdist_zero_iff_closure_eq_closure, hs.closure_eq, ht.closure_eq]
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
hs : IsClosed s
ht : IsClosed t
⊢ hausdorffEdist s t = 0 ↔ s = t
state_after: no goals
Theorem: SimpleGraph.posSemidef_lapMatrix
File: Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean

tactic: constructor
state_before: V : Type u_1
R : Type u_2
inst✝⁶ : Fintype V
inst✝⁵ : DecidableEq V
G : SimpleGraph V
inst✝⁴ : DecidableRel G.Adj
inst✝³ : LinearOrderedField R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : TrivialStar R
⊢ (lapMatrix R G).PosSemidef
state_after: case left
V : Type u_1
R : Type u_2
inst✝⁶ : Fintype V
inst✝⁵ : DecidableEq V
G : SimpleGraph V
inst✝⁴ : DecidableRel G.Adj
inst✝³ : LinearOrderedField R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : TrivialStar R
⊢ (lapMatrix R G).IsHermitian

case right
V : Type u_1
R : Type u_2
inst✝⁶ : Fintype V
inst✝⁵ : DecidableEq V
G : SimpleGraph V
inst✝⁴ : DecidableRel G.Adj
inst✝³ : LinearOrderedField R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : TrivialStar R
⊢ ∀ (x : V → R), 0 ≤ star x ⬝ᵥ lapMatrix R G *ᵥ x

tactic: rw [IsHermitian, conjTranspose_eq_transpose_of_trivial, isSymm_lapMatrix]
state_before: case left
V : Type u_1
R : Type u_2
inst✝⁶ : Fintype V
inst✝⁵ : DecidableEq V
G : SimpleGraph V
inst✝⁴ : DecidableRel G.Adj
inst✝³ : LinearOrderedField R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : TrivialStar R
⊢ (lapMatrix R G).IsHermitian
state_after: no goals

tactic: intro x
state_before: case right
V : Type u_1
R : Type u_2
inst✝⁶ : Fintype V
inst✝⁵ : DecidableEq V
G : SimpleGraph V
inst✝⁴ : DecidableRel G.Adj
inst✝³ : LinearOrderedField R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : TrivialStar R
⊢ ∀ (x : V → R), 0 ≤ star x ⬝ᵥ lapMatrix R G *ᵥ x
state_after: case right
V : Type u_1
R : Type u_2
inst✝⁶ : Fintype V
inst✝⁵ : DecidableEq V
G : SimpleGraph V
inst✝⁴ : DecidableRel G.Adj
inst✝³ : LinearOrderedField R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : TrivialStar R
x : V → R
⊢ 0 ≤ star x ⬝ᵥ lapMatrix R G *ᵥ x

tactic: rw [star_trivial, ← toLinearMap₂'_apply', lapMatrix_toLinearMap₂']
state_before: case right
V : Type u_1
R : Type u_2
inst✝⁶ : Fintype V
inst✝⁵ : DecidableEq V
G : SimpleGraph V
inst✝⁴ : DecidableRel G.Adj
inst✝³ : LinearOrderedField R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : TrivialStar R
x : V → R
⊢ 0 ≤ star x ⬝ᵥ lapMatrix R G *ᵥ x
state_after: case right
V : Type u_1
R : Type u_2
inst✝⁶ : Fintype V
inst✝⁵ : DecidableEq V
G : SimpleGraph V
inst✝⁴ : DecidableRel G.Adj
inst✝³ : LinearOrderedField R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : TrivialStar R
x : V → R
⊢ 0 ≤ (∑ i : V, ∑ j : V, if G.Adj i j then (x i - x j) ^ 2 else 0) / 2

tactic: positivity
state_before: case right
V : Type u_1
R : Type u_2
inst✝⁶ : Fintype V
inst✝⁵ : DecidableEq V
G : SimpleGraph V
inst✝⁴ : DecidableRel G.Adj
inst✝³ : LinearOrderedField R
inst✝² : StarRing R
inst✝¹ : StarOrderedRing R
inst✝ : TrivialStar R
x : V → R
⊢ 0 ≤ (∑ i : V, ∑ j : V, if G.Adj i j then (x i - x j) ^ 2 else 0) / 2
state_after: no goals
Theorem: forall_existsUnique_iff
File: Mathlib/Logic/Function/Basic.lean

tactic: refine ⟨fun h ↦ ?_, ?_⟩
state_before: α : Sort u_1
β : Sort u_2
r : α → β → Prop
⊢ (∀ (a : α), ∃! b, r a b) ↔ ∃ f, ∀ {a : α} {b : β}, r a b ↔ f a = b
state_after: case refine_1
α : Sort u_1
β : Sort u_2
r : α → β → Prop
h : ∀ (a : α), ∃! b, r a b
⊢ ∃ f, ∀ {a : α} {b : β}, r a b ↔ f a = b

case refine_2
α : Sort u_1
β : Sort u_2
r : α → β → Prop
⊢ (∃ f, ∀ {a : α} {b : β}, r a b ↔ f a = b) → ∀ (a : α), ∃! b, r a b

tactic: refine ⟨fun a ↦ (h a).choose, fun hr ↦ ?_, fun h' ↦ h' ▸ ?_⟩
state_before: case refine_1
α : Sort u_1
β : Sort u_2
r : α → β → Prop
h : ∀ (a : α), ∃! b, r a b
⊢ ∃ f, ∀ {a : α} {b : β}, r a b ↔ f a = b
state_after: case refine_1.refine_1
α : Sort u_1
β : Sort u_2
r : α → β → Prop
h : ∀ (a : α), ∃! b, r a b
a✝ : α
b✝ : β
hr : r a✝ b✝
⊢ (fun a => Exists.choose ⋯) a✝ = b✝

case refine_1.refine_2
α : Sort u_1
β : Sort u_2
r : α → β → Prop
h : ∀ (a : α), ∃! b, r a b
a✝ : α
b✝ : β
h' : (fun a => Exists.choose ⋯) a✝ = b✝
⊢ r a✝ ((fun a => Exists.choose ⋯) a✝)

tactic: exacts [((h _).choose_spec.2 _ hr).symm, (h _).choose_spec.1]
state_before: case refine_1.refine_1
α : Sort u_1
β : Sort u_2
r : α → β → Prop
h : ∀ (a : α), ∃! b, r a b
a✝ : α
b✝ : β
hr : r a✝ b✝
⊢ (fun a => Exists.choose ⋯) a✝ = b✝

case refine_1.refine_2
α : Sort u_1
β : Sort u_2
r : α → β → Prop
h : ∀ (a : α), ∃! b, r a b
a✝ : α
b✝ : β
h' : (fun a => Exists.choose ⋯) a✝ = b✝
⊢ r a✝ ((fun a => Exists.choose ⋯) a✝)
state_after: no goals

tactic: rintro ⟨f, hf⟩
state_before: case refine_2
α : Sort u_1
β : Sort u_2
r : α → β → Prop
⊢ (∃ f, ∀ {a : α} {b : β}, r a b ↔ f a = b) → ∀ (a : α), ∃! b, r a b
state_after: case refine_2.intro
α : Sort u_1
β : Sort u_2
r : α → β → Prop
f : α → β
hf : ∀ {a : α} {b : β}, r a b ↔ f a = b
⊢ ∀ (a : α), ∃! b, r a b

tactic: simp [hf]
state_before: case refine_2.intro
α : Sort u_1
β : Sort u_2
r : α → β → Prop
f : α → β
hf : ∀ {a : α} {b : β}, r a b ↔ f a = b
⊢ ∀ (a : α), ∃! b, r a b
state_after: no goals
Theorem: Asymptotics.IsBigOWith.pow'
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: simpa using isBigOWith_const_const (1 : R) (one_ne_zero' 𝕜) l
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f✝ : α → E
g✝ : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
f : α → R
g : α → 𝕜
h : IsBigOWith c l f g
⊢ IsBigOWith (Nat.casesOn 0 ‖1‖ fun n => c ^ (n + 1)) l (fun x => f x ^ 0) fun x => g x ^ 0
state_after: no goals

tactic: simpa
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f✝ : α → E
g✝ : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
f : α → R
g : α → 𝕜
h : IsBigOWith c l f g
⊢ IsBigOWith (Nat.casesOn 1 ‖1‖ fun n => c ^ (n + 1)) l (fun x => f x ^ 1) fun x => g x ^ 1
state_after: no goals

tactic: simpa [pow_succ] using (IsBigOWith.pow' h (n + 1)).mul h
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
G : Type u_5
E' : Type u_6
F' : Type u_7
G' : Type u_8
E'' : Type u_9
F'' : Type u_10
G'' : Type u_11
E''' : Type u_12
R : Type u_13
R' : Type u_14
𝕜 : Type u_15
𝕜' : Type u_16
inst✝¹³ : Norm E
inst✝¹² : Norm F
inst✝¹¹ : Norm G
inst✝¹⁰ : SeminormedAddCommGroup E'
inst✝⁹ : SeminormedAddCommGroup F'
inst✝⁸ : SeminormedAddCommGroup G'
inst✝⁷ : NormedAddCommGroup E''
inst✝⁶ : NormedAddCommGroup F''
inst✝⁵ : NormedAddCommGroup G''
inst✝⁴ : SeminormedRing R
inst✝³ : SeminormedAddGroup E'''
inst✝² : SeminormedRing R'
inst✝¹ : NormedDivisionRing 𝕜
inst✝ : NormedDivisionRing 𝕜'
c c' c₁ c₂ : ℝ
f✝ : α → E
g✝ : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l l' : Filter α
f : α → R
g : α → 𝕜
h : IsBigOWith c l f g
n : ℕ
⊢ IsBigOWith (Nat.casesOn (n + 2) ‖1‖ fun n => c ^ (n + 1)) l (fun x => f x ^ (n + 2)) fun x => g x ^ (n + 2)
state_after: no goals
Theorem: uniqueDiffOn_extChartAt_target
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rw [extChartAt_target]
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
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x : M
⊢ UniqueDiffOn 𝕜 (extChartAt I x).target
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
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x : M
⊢ UniqueDiffOn 𝕜 (↑I.symm ⁻¹' (chartAt H x).target ∩ range ↑I)

tactic: exact I.unique_diff_preimage (chartAt H x).open_target
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
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x : M
⊢ UniqueDiffOn 𝕜 (↑I.symm ⁻¹' (chartAt H x).target ∩ range ↑I)
state_after: no goals
Theorem: Asymptotics.IsEquivalent.sub_isLittleO
File: Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean

tactic: simpa only [sub_eq_add_neg] using huv.add_isLittleO hwv.neg_left
state_before: α : Type u_1
β : Type u_2
inst✝ : NormedAddCommGroup β
u v w : α → β
l : Filter α
huv : u ~[l] v
hwv : w =o[l] v
⊢ u - w ~[l] v
state_after: no goals
Theorem: Multiset.count_erase_of_ne
File: Mathlib/Data/Multiset/Basic.lean

tactic: convert List.count_erase_of_ne ab l <;> rw [← coe_count] <;> simp
state_before: α : Type u_1
β : Type v
γ : Type u_2
inst✝ : DecidableEq α
s✝ : Multiset α
a b : α
ab : a ≠ b
s : Multiset α
l : List α
⊢ count a (erase ⟦l⟧ b) = count a ⟦l⟧
state_after: no goals
Theorem: CategoryTheory.Presheaf.isLocallyInjective_iff_injective_of_separated
File: Mathlib/CategoryTheory/Sites/LocallyInjective.lean

tactic: constructor
state_before: C : Type u
inst✝² : Category.{v, u} C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ F₃ : Cᵒᵖ ⥤ D
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
hsep : Presieve.IsSeparated J (F₁ ⋙ forget D)
⊢ IsLocallyInjective J φ ↔ ∀ (X : Cᵒᵖ), Function.Injective ⇑(φ.app X)
state_after: case mp
C : Type u
inst✝² : Category.{v, u} C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ F₃ : Cᵒᵖ ⥤ D
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
hsep : Presieve.IsSeparated J (F₁ ⋙ forget D)
⊢ IsLocallyInjective J φ → ∀ (X : Cᵒᵖ), Function.Injective ⇑(φ.app X)

case mpr
C : Type u
inst✝² : Category.{v, u} C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ F₃ : Cᵒᵖ ⥤ D
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
hsep : Presieve.IsSeparated J (F₁ ⋙ forget D)
⊢ (∀ (X : Cᵒᵖ), Function.Injective ⇑(φ.app X)) → IsLocallyInjective J φ

tactic: intro _ X x y h
state_before: case mp
C : Type u
inst✝² : Category.{v, u} C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ F₃ : Cᵒᵖ ⥤ D
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
hsep : Presieve.IsSeparated J (F₁ ⋙ forget D)
⊢ IsLocallyInjective J φ → ∀ (X : Cᵒᵖ), Function.Injective ⇑(φ.app X)
state_after: case mp
C : Type u
inst✝² : Category.{v, u} C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ F₃ : Cᵒᵖ ⥤ D
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
hsep : Presieve.IsSeparated J (F₁ ⋙ forget D)
a✝ : IsLocallyInjective J φ
X : Cᵒᵖ
x y : (forget D).obj (F₁.obj X)
h : (φ.app X) x = (φ.app X) y
⊢ x = y

tactic: exact (hsep _ (equalizerSieve_mem J φ x y h)).ext (fun _ _ hf => hf)
state_before: case mp
C : Type u
inst✝² : Category.{v, u} C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ F₃ : Cᵒᵖ ⥤ D
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
hsep : Presieve.IsSeparated J (F₁ ⋙ forget D)
a✝ : IsLocallyInjective J φ
X : Cᵒᵖ
x y : (forget D).obj (F₁.obj X)
h : (φ.app X) x = (φ.app X) y
⊢ x = y
state_after: no goals

tactic: apply isLocallyInjective_of_injective
state_before: case mpr
C : Type u
inst✝² : Category.{v, u} C
D : Type u'
inst✝¹ : Category.{v', u'} D
inst✝ : ConcreteCategory D
J : GrothendieckTopology C
F₁ F₂ F₃ : Cᵒᵖ ⥤ D
φ : F₁ ⟶ F₂
ψ : F₂ ⟶ F₃
hsep : Presieve.IsSeparated J (F₁ ⋙ forget D)
⊢ (∀ (X : Cᵒᵖ), Function.Injective ⇑(φ.app X)) → IsLocallyInjective J φ
state_after: no goals
Theorem: Nat.eq_one_of_mul_eq_one_left
File: Mathlib/Data/Nat/Defs.lean

tactic: rwa [Nat.mul_comm]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
H : m * n = 1
⊢ n * ?m.34796 = 1
state_after: no goals
Theorem: groupCohomology.smul_map_inv_div_map_inv_of_isMulTwoCocycle
File: Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean

tactic: have := hf g g⁻¹ g
state_before: k G✝ : Type u
inst✝⁴ : CommRing k
inst✝³ : Group G✝
A : Rep k G✝
G : Type u_1
M : Type u_2
inst✝² : Group G
inst✝¹ : CommGroup M
inst✝ : MulAction G M
f : G × G → M
hf : IsMulTwoCocycle f
g : G
⊢ g • f (g⁻¹, g) / f (g, g⁻¹) = f (1, 1) / f (g, 1)
state_after: k G✝ : Type u
inst✝⁴ : CommRing k
inst✝³ : Group G✝
A : Rep k G✝
G : Type u_1
M : Type u_2
inst✝² : Group G
inst✝¹ : CommGroup M
inst✝ : MulAction G M
f : G × G → M
hf : IsMulTwoCocycle f
g : G
this : f (g * g⁻¹, g) * f (g, g⁻¹) = g • f (g⁻¹, g) * f (g, g⁻¹ * g)
⊢ g • f (g⁻¹, g) / f (g, g⁻¹) = f (1, 1) / f (g, 1)

tactic: simp only [mul_right_inv, mul_left_inv, map_one_fst_of_isMulTwoCocycle hf g] at this
state_before: k G✝ : Type u
inst✝⁴ : CommRing k
inst✝³ : Group G✝
A : Rep k G✝
G : Type u_1
M : Type u_2
inst✝² : Group G
inst✝¹ : CommGroup M
inst✝ : MulAction G M
f : G × G → M
hf : IsMulTwoCocycle f
g : G
this : f (g * g⁻¹, g) * f (g, g⁻¹) = g • f (g⁻¹, g) * f (g, g⁻¹ * g)
⊢ g • f (g⁻¹, g) / f (g, g⁻¹) = f (1, 1) / f (g, 1)
state_after: k G✝ : Type u
inst✝⁴ : CommRing k
inst✝³ : Group G✝
A : Rep k G✝
G : Type u_1
M : Type u_2
inst✝² : Group G
inst✝¹ : CommGroup M
inst✝ : MulAction G M
f : G × G → M
hf : IsMulTwoCocycle f
g : G
this : f (1, 1) * f (g, g⁻¹) = g • f (g⁻¹, g) * f (g, 1)
⊢ g • f (g⁻¹, g) / f (g, g⁻¹) = f (1, 1) / f (g, 1)

tactic: exact div_eq_div_iff_mul_eq_mul.2 this.symm
state_before: k G✝ : Type u
inst✝⁴ : CommRing k
inst✝³ : Group G✝
A : Rep k G✝
G : Type u_1
M : Type u_2
inst✝² : Group G
inst✝¹ : CommGroup M
inst✝ : MulAction G M
f : G × G → M
hf : IsMulTwoCocycle f
g : G
this : f (1, 1) * f (g, g⁻¹) = g • f (g⁻¹, g) * f (g, 1)
⊢ g • f (g⁻¹, g) / f (g, g⁻¹) = f (1, 1) / f (g, 1)
state_after: no goals
Theorem: AddCommGroup.modEq_iff_toIocMod_eq_right
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: refine modEq_iff_eq_add_zsmul.trans ⟨?_, fun h => ⟨toIocDiv hp a b + 1, ?_⟩⟩
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ a ≡ b [PMOD p] ↔ toIocMod hp a b = a + p
state_after: case refine_1
α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ (∃ z, b = a + z • p) → toIocMod hp a b = a + p

case refine_2
α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
h : toIocMod hp a b = a + p
⊢ b = a + (toIocDiv hp a b + 1) • p

tactic: rintro ⟨z, rfl⟩
state_before: case refine_1
α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
⊢ (∃ z, b = a + z • p) → toIocMod hp a b = a + p
state_after: case refine_1.intro
α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a c : α
n z : ℤ
⊢ toIocMod hp a (a + z • p) = a + p

tactic: rw [toIocMod_add_zsmul, toIocMod_apply_left]
state_before: case refine_1.intro
α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a c : α
n z : ℤ
⊢ toIocMod hp a (a + z • p) = a + p
state_after: no goals

tactic: rwa [add_one_zsmul, add_left_comm, ← sub_eq_iff_eq_add']
state_before: case refine_2
α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a b c : α
n : ℤ
h : toIocMod hp a b = a + p
⊢ b = a + (toIocDiv hp a b + 1) • p
state_after: no goals