1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Finset.inl_mem_sumLexLift
File: Mathlib/Data/Sum/Interval.lean

tactic: simp [mem_sumLexLift]
state_before: α₁ : Type u_1
α₂ : Type u_2
β₁ : Type u_3
β₂ : Type u_4
γ₁ : Type u_5
γ₂ : Type u_6
f₁ f₁' : α₁ → β₁ → Finset γ₁
f₂ f₂' : α₂ → β₂ → Finset γ₂
g₁ g₁' : α₁ → β₂ → Finset γ₁
g₂ g₂' : α₁ → β₂ → Finset γ₂
a : α₁ ⊕ α₂
b : β₁ ⊕ β₂
c : γ₁ ⊕ γ₂
c₁ : γ₁
⊢ inl c₁ ∈ sumLexLift f₁ f₂ g₁ g₂ a b ↔
    (∃ a₁ b₁, a = inl a₁ ∧ b = inl b₁ ∧ c₁ ∈ f₁ a₁ b₁) ∨ ∃ a₁ b₂, a = inl a₁ ∧ b = inr b₂ ∧ c₁ ∈ g₁ a₁ b₂
state_after: no goals
Theorem: Down.mem_compression_of_insert_mem_compression
File: Mathlib/Combinatorics/SetFamily/Compression/Down.lean

tactic: by_cases ha : a ∈ s
state_before: α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
h : insert a s ∈ 𝓓 a 𝒜
⊢ s ∈ 𝓓 a 𝒜
state_after: case pos
α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
h : insert a s ∈ 𝓓 a 𝒜
ha : a ∈ s
⊢ s ∈ 𝓓 a 𝒜

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

tactic: rwa [insert_eq_of_mem ha] at h
state_before: case pos
α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
h : insert a s ∈ 𝓓 a 𝒜
ha : a ∈ s
⊢ s ∈ 𝓓 a 𝒜
state_after: no goals

tactic: rw [← erase_insert ha]
state_before: case neg
α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
h : insert a s ∈ 𝓓 a 𝒜
ha : a ∉ s
⊢ s ∈ 𝓓 a 𝒜
state_after: case neg
α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
h : insert a s ∈ 𝓓 a 𝒜
ha : a ∉ s
⊢ (insert a s).erase a ∈ 𝓓 a 𝒜

tactic: exact erase_mem_compression_of_mem_compression h
state_before: case neg
α : Type u_1
inst✝ : DecidableEq α
𝒜 ℬ : Finset (Finset α)
s : Finset α
a : α
h : insert a s ∈ 𝓓 a 𝒜
ha : a ∉ s
⊢ (insert a s).erase a ∈ 𝓓 a 𝒜
state_after: no goals
Theorem: SimpleGraph.dart_edge_eq_mk'_iff
File: Mathlib/Combinatorics/SimpleGraph/Dart.lean

tactic: rintro ⟨p, h⟩
state_before: V : Type u_1
G : SimpleGraph V
⊢ ∀ {d : G.Dart} {p : V × V}, d.edge = Sym2.mk p ↔ d.toProd = p ∨ d.toProd = p.swap
state_after: case mk
V : Type u_1
G : SimpleGraph V
p : V × V
h : G.Adj p.1 p.2
⊢ ∀ {p_1 : V × V},
    { toProd := p, adj := h }.edge = Sym2.mk p_1 ↔
      { toProd := p, adj := h }.toProd = p_1 ∨ { toProd := p, adj := h }.toProd = p_1.swap

tactic: apply Sym2.mk_eq_mk_iff
state_before: case mk
V : Type u_1
G : SimpleGraph V
p : V × V
h : G.Adj p.1 p.2
⊢ ∀ {p_1 : V × V},
    { toProd := p, adj := h }.edge = Sym2.mk p_1 ↔
      { toProd := p, adj := h }.toProd = p_1 ∨ { toProd := p, adj := h }.toProd = p_1.swap
state_after: no goals
Theorem: ContinuousMultilinearMap.opNNNorm_le_iff
File: Mathlib/Analysis/NormedSpace/Multilinear/Basic.lean

tactic: simp only [← NNReal.coe_le_coe]
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹⁵ : Fintype ι
inst✝¹⁴ : Fintype ι'
inst✝¹³ : NontriviallyNormedField 𝕜
inst✝¹² : (i : ι) → SeminormedAddCommGroup (E i)
inst✝¹¹ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹⁰ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁹ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁸ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁷ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁶ : SeminormedAddCommGroup G
inst✝⁵ : NormedSpace 𝕜 G
inst✝⁴ : SeminormedAddCommGroup G'
inst✝³ : NormedSpace 𝕜 G'
c : 𝕜
f g : ContinuousMultilinearMap 𝕜 E G
m : (i : ι) → E i
𝕜' : Type u_1
inst✝² : NormedField 𝕜'
inst✝¹ : NormedSpace 𝕜' G
inst✝ : SMulCommClass 𝕜 𝕜' G
C : ℝ≥0
⊢ ‖f‖₊ ≤ C ↔ ∀ (m : (i : ι) → E i), ‖f m‖₊ ≤ C * ∏ i : ι, ‖m i‖₊
state_after: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹⁵ : Fintype ι
inst✝¹⁴ : Fintype ι'
inst✝¹³ : NontriviallyNormedField 𝕜
inst✝¹² : (i : ι) → SeminormedAddCommGroup (E i)
inst✝¹¹ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹⁰ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁹ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁸ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁷ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁶ : SeminormedAddCommGroup G
inst✝⁵ : NormedSpace 𝕜 G
inst✝⁴ : SeminormedAddCommGroup G'
inst✝³ : NormedSpace 𝕜 G'
c : 𝕜
f g : ContinuousMultilinearMap 𝕜 E G
m : (i : ι) → E i
𝕜' : Type u_1
inst✝² : NormedField 𝕜'
inst✝¹ : NormedSpace 𝕜' G
inst✝ : SMulCommClass 𝕜 𝕜' G
C : ℝ≥0
⊢ ↑‖f‖₊ ≤ ↑C ↔ ∀ (m : (i : ι) → E i), ↑‖f m‖₊ ≤ ↑(C * ∏ i : ι, ‖m i‖₊)

tactic: simp [opNorm_le_iff _ C.coe_nonneg, NNReal.coe_prod]
state_before: 𝕜 : Type u
ι : Type v
ι' : Type v'
E : ι → Type wE
E₁ : ι → Type wE₁
E' : ι' → Type wE'
G : Type wG
G' : Type wG'
inst✝¹⁵ : Fintype ι
inst✝¹⁴ : Fintype ι'
inst✝¹³ : NontriviallyNormedField 𝕜
inst✝¹² : (i : ι) → SeminormedAddCommGroup (E i)
inst✝¹¹ : (i : ι) → NormedSpace 𝕜 (E i)
inst✝¹⁰ : (i : ι) → SeminormedAddCommGroup (E₁ i)
inst✝⁹ : (i : ι) → NormedSpace 𝕜 (E₁ i)
inst✝⁸ : (i : ι') → SeminormedAddCommGroup (E' i)
inst✝⁷ : (i : ι') → NormedSpace 𝕜 (E' i)
inst✝⁶ : SeminormedAddCommGroup G
inst✝⁵ : NormedSpace 𝕜 G
inst✝⁴ : SeminormedAddCommGroup G'
inst✝³ : NormedSpace 𝕜 G'
c : 𝕜
f g : ContinuousMultilinearMap 𝕜 E G
m : (i : ι) → E i
𝕜' : Type u_1
inst✝² : NormedField 𝕜'
inst✝¹ : NormedSpace 𝕜' G
inst✝ : SMulCommClass 𝕜 𝕜' G
C : ℝ≥0
⊢ ↑‖f‖₊ ≤ ↑C ↔ ∀ (m : (i : ι) → E i), ↑‖f m‖₊ ≤ ↑(C * ∏ i : ι, ‖m i‖₊)
state_after: no goals
Theorem: toIcoDiv_sub_eq_toIcoDiv_add'
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [← sub_neg_eq_add, toIcoDiv_sub_eq_toIcoDiv_add, sub_eq_add_neg]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
⊢ toIcoDiv hp (a - c) b = toIcoDiv hp a (b + c)
state_after: no goals
Theorem: nnnorm_pow_le_mul_norm
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: simpa only [← NNReal.coe_le_coe, NNReal.coe_mul, NNReal.coe_natCast] using
  norm_pow_le_mul_norm n a
state_before: 𝓕 : Type u_1
𝕜 : Type u_2
α : Type u_3
ι : Type u_4
κ : Type u_5
E : Type u_6
F : Type u_7
G : Type u_8
inst✝¹ : SeminormedCommGroup E
inst✝ : SeminormedCommGroup F
a✝ a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
n : ℕ
a : E
⊢ ‖a ^ n‖₊ ≤ ↑n * ‖a‖₊
state_after: no goals
Theorem: SimpleGraph.Partition.partOfVertex_ne_of_adj
File: Mathlib/Combinatorics/SimpleGraph/Partition.lean

tactic: intro hn
state_before: V : Type u
G : SimpleGraph V
P : G.Partition
v w : V
h : G.Adj v w
⊢ P.partOfVertex v ≠ P.partOfVertex w
state_after: V : Type u
G : SimpleGraph V
P : G.Partition
v w : V
h : G.Adj v w
hn : P.partOfVertex v = P.partOfVertex w
⊢ False

tactic: have hw := P.mem_partOfVertex w
state_before: V : Type u
G : SimpleGraph V
P : G.Partition
v w : V
h : G.Adj v w
hn : P.partOfVertex v = P.partOfVertex w
⊢ False
state_after: V : Type u
G : SimpleGraph V
P : G.Partition
v w : V
h : G.Adj v w
hn : P.partOfVertex v = P.partOfVertex w
hw : w ∈ P.partOfVertex w
⊢ False

tactic: rw [← hn] at hw
state_before: V : Type u
G : SimpleGraph V
P : G.Partition
v w : V
h : G.Adj v w
hn : P.partOfVertex v = P.partOfVertex w
hw : w ∈ P.partOfVertex w
⊢ False
state_after: V : Type u
G : SimpleGraph V
P : G.Partition
v w : V
h : G.Adj v w
hn : P.partOfVertex v = P.partOfVertex w
hw : w ∈ P.partOfVertex v
⊢ False

tactic: exact P.independent _ (P.partOfVertex_mem v) (P.mem_partOfVertex v) hw (G.ne_of_adj h) h
state_before: V : Type u
G : SimpleGraph V
P : G.Partition
v w : V
h : G.Adj v w
hn : P.partOfVertex v = P.partOfVertex w
hw : w ∈ P.partOfVertex v
⊢ False
state_after: no goals
Theorem: orthonormal_empty
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: classical
simp [orthonormal_subtype_iff_ite]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
⊢ Orthonormal 𝕜 fun x => ↑x
state_after: no goals

tactic: simp [orthonormal_subtype_iff_ite]
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : _root_.RCLike 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
ι : Type u_4
⊢ Orthonormal 𝕜 fun x => ↑x
state_after: no goals
Theorem: Asymptotics.SuperpolynomialDecay.mul
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: simpa only [mul_assoc, one_mul, mul_zero, pow_zero] using (hf z).mul (hg 0)
state_before: α : Type u_1
β : Type u_2
l : Filter α
k f g g' : α → β
inst✝² : TopologicalSpace β
inst✝¹ : CommSemiring β
inst✝ : ContinuousMul β
hf : SuperpolynomialDecay l k f
hg : SuperpolynomialDecay l k g
z : ℕ
⊢ Tendsto (fun a => k a ^ z * (f * g) a) l (𝓝 0)
state_after: no goals
Theorem: cauchySeq_iff
File: Mathlib/Topology/UniformSpace/Cauchy.lean

tactic: simp only [cauchySeq_iff', Filter.eventually_atTop_prod_self', mem_preimage, Prod.map_apply]
state_before: α : Type u
β : Type v
uniformSpace : UniformSpace α
u : ℕ → α
⊢ CauchySeq u ↔ ∀ V ∈ 𝓤 α, ∃ N, ∀ k ≥ N, ∀ l ≥ N, (u k, u l) ∈ V
state_after: no goals
Theorem: PrincipalSeg.irrefl
File: Mathlib/Order/InitialSeg.lean

tactic: have h := f.lt_top f.top
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
f : r ≺i r
⊢ False
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
f : r ≺i r
h : r (f.toRelEmbedding f.top) f.top
⊢ False

tactic: rw [show f f.top = f.top from InitialSeg.eq (↑f) (InitialSeg.refl r) f.top] at h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
f : r ≺i r
h : r (f.toRelEmbedding f.top) f.top
⊢ False
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
f : r ≺i r
h : r f.top f.top
⊢ False

tactic: exact _root_.irrefl _ h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
r✝ : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
r : α → α → Prop
inst✝ : IsWellOrder α r
f : r ≺i r
h : r f.top f.top
⊢ False
state_after: no goals
Theorem: AlgebraicGeometry.ΓSpec.adjunction_unit_map_basicOpen
File: Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean

tactic: rw [← basicOpen_eq_of_affine]
state_before: X : Scheme
r : ↑Γ(X, ⊤)
⊢ adjunction.unit.app X ⁻¹ᵁ basicOpen r = X.basicOpen r
state_after: X : Scheme
r : ↑Γ(X, ⊤)
⊢ adjunction.unit.app X ⁻¹ᵁ (Spec Γ(X, ⊤)).basicOpen ((Scheme.ΓSpecIso Γ(X, ⊤)).inv r) = X.basicOpen r

tactic: erw [Scheme.preimage_basicOpen]
state_before: X : Scheme
r : ↑Γ(X, ⊤)
⊢ adjunction.unit.app X ⁻¹ᵁ (Spec Γ(X, ⊤)).basicOpen ((Scheme.ΓSpecIso Γ(X, ⊤)).inv r) = X.basicOpen r
state_after: X : Scheme
r : ↑Γ(X, ⊤)
⊢ ((𝟭 Scheme).obj X).basicOpen ((Scheme.Hom.app (adjunction.unit.app X) ⊤) ((Scheme.ΓSpecIso Γ(X, ⊤)).inv r)) =
    X.basicOpen r

tactic: congr
state_before: X : Scheme
r : ↑Γ(X, ⊤)
⊢ ((𝟭 Scheme).obj X).basicOpen ((Scheme.Hom.app (adjunction.unit.app X) ⊤) ((Scheme.ΓSpecIso Γ(X, ⊤)).inv r)) =
    X.basicOpen r
state_after: case e_f
X : Scheme
r : ↑Γ(X, ⊤)
⊢ (Scheme.Hom.app (adjunction.unit.app X) ⊤) ((Scheme.ΓSpecIso Γ(X, ⊤)).inv r) = r

tactic: rw [ΓSpec.adjunction_unit_app_app_top]
state_before: case e_f
X : Scheme
r : ↑Γ(X, ⊤)
⊢ (Scheme.Hom.app (adjunction.unit.app X) ⊤) ((Scheme.ΓSpecIso Γ(X, ⊤)).inv r) = r
state_after: case e_f
X : Scheme
r : ↑Γ(X, ⊤)
⊢ (Scheme.ΓSpecIso Γ(X, ⊤)).hom ((Scheme.ΓSpecIso Γ(X, ⊤)).inv r) = r

tactic: exact Iso.inv_hom_id_apply _ _
state_before: case e_f
X : Scheme
r : ↑Γ(X, ⊤)
⊢ (Scheme.ΓSpecIso Γ(X, ⊤)).hom ((Scheme.ΓSpecIso Γ(X, ⊤)).inv r) = r
state_after: no goals
Theorem: List.mem_cyclicPermutations_iff
File: Mathlib/Data/List/Rotate.lean

tactic: constructor
state_before: α : Type u
l l' : List α
⊢ l ∈ l'.cyclicPermutations ↔ l ~r l'
state_after: case mp
α : Type u
l l' : List α
⊢ l ∈ l'.cyclicPermutations → l ~r l'

case mpr
α : Type u
l l' : List α
⊢ l ~r l' → l ∈ l'.cyclicPermutations

tactic: simp_rw [mem_iff_get, get_cyclicPermutations]
state_before: case mp
α : Type u
l l' : List α
⊢ l ∈ l'.cyclicPermutations → l ~r l'
state_after: case mp
α : Type u
l l' : List α
⊢ (∃ n, l'.rotate ↑n = l) → l ~r l'

tactic: rintro ⟨k, rfl⟩
state_before: case mp
α : Type u
l l' : List α
⊢ (∃ n, l'.rotate ↑n = l) → l ~r l'
state_after: case mp.intro
α : Type u
l' : List α
k : Fin l'.cyclicPermutations.length
⊢ l'.rotate ↑k ~r l'

tactic: exact .forall _ _
state_before: case mp.intro
α : Type u
l' : List α
k : Fin l'.cyclicPermutations.length
⊢ l'.rotate ↑k ~r l'
state_after: no goals

tactic: rintro ⟨k, rfl⟩
state_before: case mpr
α : Type u
l l' : List α
⊢ l ~r l' → l ∈ l'.cyclicPermutations
state_after: case mpr.intro
α : Type u
l : List α
k : ℕ
⊢ l ∈ (l.rotate k).cyclicPermutations

tactic: rw [cyclicPermutations_rotate, mem_rotate]
state_before: case mpr.intro
α : Type u
l : List α
k : ℕ
⊢ l ∈ (l.rotate k).cyclicPermutations
state_after: case mpr.intro
α : Type u
l : List α
k : ℕ
⊢ l ∈ l.cyclicPermutations

tactic: apply mem_cyclicPermutations_self
state_before: case mpr.intro
α : Type u
l : List α
k : ℕ
⊢ l ∈ l.cyclicPermutations
state_after: no goals
Theorem: DifferentiableAt.hasGradientAt
File: Mathlib/Analysis/Calculus/Gradient/Basic.lean

tactic: rw [hasGradientAt_iff_hasFDerivAt, gradient, (toDual 𝕜 F).apply_symm_apply (fderiv 𝕜 f x)]
state_before: 𝕜 : Type u_1
F : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
inst✝ : CompleteSpace F
f : F → 𝕜
f' x : F
s : Set F
L : Filter F
h : DifferentiableAt 𝕜 f x
⊢ HasGradientAt f (∇ f x) x
state_after: 𝕜 : Type u_1
F : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
inst✝ : CompleteSpace F
f : F → 𝕜
f' x : F
s : Set F
L : Filter F
h : DifferentiableAt 𝕜 f x
⊢ HasFDerivAt f (fderiv 𝕜 f x) x

tactic: exact h.hasFDerivAt
state_before: 𝕜 : Type u_1
F : Type u_2
inst✝³ : RCLike 𝕜
inst✝² : NormedAddCommGroup F
inst✝¹ : InnerProductSpace 𝕜 F
inst✝ : CompleteSpace F
f : F → 𝕜
f' x : F
s : Set F
L : Filter F
h : DifferentiableAt 𝕜 f x
⊢ HasFDerivAt f (fderiv 𝕜 f x) x
state_after: no goals
Theorem: CategoryTheory.ShortComplex.RightHomologyData.exact_iff_mono_g'
File: Mathlib/Algebra/Homology/ShortComplex/Exact.lean

tactic: constructor
state_before: C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.40951, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
inst✝ : S.HasHomology
h : S.RightHomologyData
⊢ S.Exact ↔ Mono h.g'
state_after: case mp
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.40951, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
inst✝ : S.HasHomology
h : S.RightHomologyData
⊢ S.Exact → Mono h.g'

case mpr
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.40951, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
inst✝ : S.HasHomology
h : S.RightHomologyData
⊢ Mono h.g' → S.Exact

tactic: intro hS
state_before: case mp
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.40951, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
inst✝ : S.HasHomology
h : S.RightHomologyData
⊢ S.Exact → Mono h.g'
state_after: case mp
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.40951, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
inst✝ : S.HasHomology
h : S.RightHomologyData
hS : S.Exact
⊢ Mono h.g'

tactic: exact hS.mono_g' h
state_before: case mp
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.40951, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
inst✝ : S.HasHomology
h : S.RightHomologyData
hS : S.Exact
⊢ Mono h.g'
state_after: no goals

tactic: intro
state_before: case mpr
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.40951, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
inst✝ : S.HasHomology
h : S.RightHomologyData
⊢ Mono h.g' → S.Exact
state_after: case mpr
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.40951, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
inst✝ : S.HasHomology
h : S.RightHomologyData
a✝ : Mono h.g'
⊢ S.Exact

tactic: simp only [h.exact_iff, IsZero.iff_id_eq_zero, ← cancel_mono h.ι, ← cancel_mono h.g',
  id_comp, h.ι_g', zero_comp]
state_before: case mpr
C : Type u_1
D : Type u_2
inst✝⁴ : Category.{u_3, u_1} C
inst✝³ : Category.{?u.40951, u_2} D
inst✝² : Preadditive C
inst✝¹ : Preadditive D
S : ShortComplex C
inst✝ : S.HasHomology
h : S.RightHomologyData
a✝ : Mono h.g'
⊢ S.Exact
state_after: no goals
Theorem: MeasureTheory.lintegral_strict_mono_of_ae_le_of_frequently_ae_lt
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: contrapose! h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hg : AEMeasurable g μ
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
h_le : f ≤ᶠ[ae μ] g
h : ∃ᵐ (x : α) ∂μ, f x ≠ g x
⊢ ∫⁻ (x : α), f x ∂μ < ∫⁻ (x : α), g x ∂μ
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hg : AEMeasurable g μ
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
h_le : f ≤ᶠ[ae μ] g
h : ∫⁻ (x : α), g x ∂μ ≤ ∫⁻ (x : α), f x ∂μ
⊢ ¬∃ᵐ (x : α) ∂μ, f x ≠ g x

tactic: simp only [not_frequently, Ne, Classical.not_not]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hg : AEMeasurable g μ
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
h_le : f ≤ᶠ[ae μ] g
h : ∫⁻ (x : α), g x ∂μ ≤ ∫⁻ (x : α), f x ∂μ
⊢ ¬∃ᵐ (x : α) ∂μ, f x ≠ g x
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hg : AEMeasurable g μ
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
h_le : f ≤ᶠ[ae μ] g
h : ∫⁻ (x : α), g x ∂μ ≤ ∫⁻ (x : α), f x ∂μ
⊢ ∀ᵐ (x : α) ∂μ, f x = g x

tactic: exact ae_eq_of_ae_le_of_lintegral_le h_le hfi hg h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
hg : AEMeasurable g μ
hfi : ∫⁻ (x : α), f x ∂μ ≠ ⊤
h_le : f ≤ᶠ[ae μ] g
h : ∫⁻ (x : α), g x ∂μ ≤ ∫⁻ (x : α), f x ∂μ
⊢ ∀ᵐ (x : α) ∂μ, f x = g x
state_after: no goals
Theorem: Polynomial.coeff_monomial_succ
File: Mathlib/Algebra/Polynomial/Basic.lean

tactic: simp [coeff_monomial]
state_before: R : Type u
a b : R
m n : ℕ
inst✝ : Semiring R
p q : R[X]
⊢ ((monomial (n + 1)) a).coeff 0 = 0
state_after: no goals
Theorem: CategoryTheory.Limits.kernel.lift_zero
File: Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean

tactic: ext
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
inst✝ : HasKernel f
W : C
h : 0 ≫ f = 0
⊢ lift f 0 h = 0
state_after: case h
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
inst✝ : HasKernel f
W : C
h : 0 ≫ f = 0
⊢ lift f 0 h ≫ equalizer.ι f 0 = 0 ≫ equalizer.ι f 0

tactic: simp
state_before: case h
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
inst✝ : HasKernel f
W : C
h : 0 ≫ f = 0
⊢ lift f 0 h ≫ equalizer.ι f 0 = 0 ≫ equalizer.ι f 0
state_after: no goals
Theorem: mul_rotate
File: Mathlib/Algebra/Group/Basic.lean

tactic: simp only [mul_left_comm, mul_comm]
state_before: α : Type u_1
β : Type u_2
G : Type u_3
M : Type u_4
inst✝ : CommSemigroup G
a b c : G
⊢ a * b * c = b * c * a
state_after: no goals
Theorem: MeasureTheory.withDensity_eq_zero
File: Mathlib/MeasureTheory/Measure/WithDensity.lean

tactic: rw [← lintegral_eq_zero_iff' hf, ← setLIntegral_univ, ← withDensity_apply _ MeasurableSet.univ,
  h, Measure.coe_zero, Pi.zero_apply]
state_before: α : Type u_1
m0 : MeasurableSpace α
μ : Measure α
f : α → ℝ≥0∞
hf : AEMeasurable f μ
h : μ.withDensity f = 0
⊢ f =ᶠ[ae μ] 0
state_after: no goals
Theorem: PseudoMetricSpace.dist_ofPreNNDist_le
File: Mathlib/Topology/Metrizable/Uniformity.lean

tactic: simp
state_before: X : Type u_1
d : X → X → ℝ≥0
dist_self : ∀ (x : X), d x x = 0
dist_comm : ∀ (x y : X), d x y = d y x
x y : X
⊢ (zipWith d [x] ([] ++ [y])).sum = d x y
state_after: no goals
Theorem: iInf_univ
File: Mathlib/Order/CompleteLattice.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
β₂ : Type u_3
γ : Type u_4
ι : Sort u_5
ι' : Sort u_6
κ : ι → Sort u_7
κ' : ι' → Sort u_8
inst✝ : CompleteLattice α
f✝ g s t : ι → α
a b : α
f : β → α
⊢ ⨅ x ∈ univ, f x = ⨅ x, f x
state_after: no goals
Theorem: Filter.principal_univ
File: Mathlib/Order/Filter/Basic.lean

tactic: simp only [le_principal_iff, mem_top, eq_self_iff_true]
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
f g : Filter α
s t : Set α
⊢ ⊤ ≤ 𝓟 univ
state_after: no goals
Theorem: CategoryTheory.ShortComplex.quasiIso_unopMap
File: Mathlib/Algebra/Homology/ShortComplex/QuasiIso.lean

tactic: rw [← quasiIso_opMap_iff]
state_before: C : Type u_1
inst✝¹⁰ : Category.{u_2, u_1} C
inst✝⁹ : HasZeroMorphisms C
S₁✝ S₂✝ S₃ S₄ : ShortComplex C
inst✝⁸ : S₁✝.HasHomology
inst✝⁷ : S₂✝.HasHomology
inst✝⁶ : S₃.HasHomology
inst✝⁵ : S₄.HasHomology
S₁ S₂ : ShortComplex Cᵒᵖ
inst✝⁴ : S₁.HasHomology
inst✝³ : S₂.HasHomology
inst✝² : S₁.unop.HasHomology
inst✝¹ : S₂.unop.HasHomology
φ : S₁ ⟶ S₂
inst✝ : QuasiIso φ
⊢ QuasiIso (unopMap φ)
state_after: C : Type u_1
inst✝¹⁰ : Category.{u_2, u_1} C
inst✝⁹ : HasZeroMorphisms C
S₁✝ S₂✝ S₃ S₄ : ShortComplex C
inst✝⁸ : S₁✝.HasHomology
inst✝⁷ : S₂✝.HasHomology
inst✝⁶ : S₃.HasHomology
inst✝⁵ : S₄.HasHomology
S₁ S₂ : ShortComplex Cᵒᵖ
inst✝⁴ : S₁.HasHomology
inst✝³ : S₂.HasHomology
inst✝² : S₁.unop.HasHomology
inst✝¹ : S₂.unop.HasHomology
φ : S₁ ⟶ S₂
inst✝ : QuasiIso φ
⊢ QuasiIso (opMap (unopMap φ))

tactic: change QuasiIso φ
state_before: C : Type u_1
inst✝¹⁰ : Category.{u_2, u_1} C
inst✝⁹ : HasZeroMorphisms C
S₁✝ S₂✝ S₃ S₄ : ShortComplex C
inst✝⁸ : S₁✝.HasHomology
inst✝⁷ : S₂✝.HasHomology
inst✝⁶ : S₃.HasHomology
inst✝⁵ : S₄.HasHomology
S₁ S₂ : ShortComplex Cᵒᵖ
inst✝⁴ : S₁.HasHomology
inst✝³ : S₂.HasHomology
inst✝² : S₁.unop.HasHomology
inst✝¹ : S₂.unop.HasHomology
φ : S₁ ⟶ S₂
inst✝ : QuasiIso φ
⊢ QuasiIso (opMap (unopMap φ))
state_after: C : Type u_1
inst✝¹⁰ : Category.{u_2, u_1} C
inst✝⁹ : HasZeroMorphisms C
S₁✝ S₂✝ S₃ S₄ : ShortComplex C
inst✝⁸ : S₁✝.HasHomology
inst✝⁷ : S₂✝.HasHomology
inst✝⁶ : S₃.HasHomology
inst✝⁵ : S₄.HasHomology
S₁ S₂ : ShortComplex Cᵒᵖ
inst✝⁴ : S₁.HasHomology
inst✝³ : S₂.HasHomology
inst✝² : S₁.unop.HasHomology
inst✝¹ : S₂.unop.HasHomology
φ : S₁ ⟶ S₂
inst✝ : QuasiIso φ
⊢ QuasiIso φ

tactic: infer_instance
state_before: C : Type u_1
inst✝¹⁰ : Category.{u_2, u_1} C
inst✝⁹ : HasZeroMorphisms C
S₁✝ S₂✝ S₃ S₄ : ShortComplex C
inst✝⁸ : S₁✝.HasHomology
inst✝⁷ : S₂✝.HasHomology
inst✝⁶ : S₃.HasHomology
inst✝⁵ : S₄.HasHomology
S₁ S₂ : ShortComplex Cᵒᵖ
inst✝⁴ : S₁.HasHomology
inst✝³ : S₂.HasHomology
inst✝² : S₁.unop.HasHomology
inst✝¹ : S₂.unop.HasHomology
φ : S₁ ⟶ S₂
inst✝ : QuasiIso φ
⊢ QuasiIso φ
state_after: no goals
Theorem: Filter.HasBasis.nhds
File: Mathlib/Topology/Filter.lean

tactic: rw [nhds_eq]
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
l : Filter α
p : ι → Prop
s : ι → Set α
h : l.HasBasis p s
⊢ (𝓝 l).HasBasis p fun i => Iic (𝓟 (s i))
state_after: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
l : Filter α
p : ι → Prop
s : ι → Set α
h : l.HasBasis p s
⊢ (l.lift' (Iic ∘ 𝓟)).HasBasis p fun i => Iic (𝓟 (s i))

tactic: exact h.lift' monotone_principal.Iic
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
X : Type u_4
Y : Type u_5
l : Filter α
p : ι → Prop
s : ι → Set α
h : l.HasBasis p s
⊢ (l.lift' (Iic ∘ 𝓟)).HasBasis p fun i => Iic (𝓟 (s i))
state_after: no goals
Theorem: Finset.singleton_product_singleton
File: Mathlib/Data/Finset/Prod.lean

tactic: simp only [product_singleton, Function.Embedding.coeFn_mk, map_singleton]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s s' : Finset α
t t' : Finset β
a✝ : α
b✝ : β
a : α
b : β
⊢ {a} ×ˢ {b} = {(a, b)}
state_after: no goals