1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Equivalence.eqvGen_iff
File: Mathlib/Logic/Relation.lean

tactic: intro h
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → α → Prop
a b : α
h : Equivalence r
⊢ EqvGen r a b → r a b
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → α → Prop
a b : α
h✝ : Equivalence r
h : EqvGen r a b
⊢ r a b

tactic: induction h with
| rel => assumption
| refl => exact h.1 _
| symm => apply h.symm; assumption
| trans _ _ _ _ _ hab hbc => exact h.trans hab hbc
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → α → Prop
a b : α
h✝ : Equivalence r
h : EqvGen r a b
⊢ r a b
state_after: no goals

tactic: assumption
state_before: case rel
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → α → Prop
a b : α
h : Equivalence r
x✝ y✝ : α
a✝ : r x✝ y✝
⊢ r x✝ y✝
state_after: no goals

tactic: exact h.1 _
state_before: case refl
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → α → Prop
a b : α
h : Equivalence r
x✝ : α
⊢ r x✝ x✝
state_after: no goals

tactic: apply h.symm
state_before: case symm
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → α → Prop
a b : α
h : Equivalence r
x✝ y✝ : α
a✝ : EqvGen r x✝ y✝
a_ih✝ : r x✝ y✝
⊢ r y✝ x✝
state_after: case symm
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → α → Prop
a b : α
h : Equivalence r
x✝ y✝ : α
a✝ : EqvGen r x✝ y✝
a_ih✝ : r x✝ y✝
⊢ r x✝ y✝

tactic: assumption
state_before: case symm
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → α → Prop
a b : α
h : Equivalence r
x✝ y✝ : α
a✝ : EqvGen r x✝ y✝
a_ih✝ : r x✝ y✝
⊢ r x✝ y✝
state_after: no goals

tactic: exact h.trans hab hbc
state_before: case trans
α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
ε : Type u_5
ζ : Type u_6
r : α → α → Prop
a b : α
h : Equivalence r
x✝ y✝ z✝ : α
a✝¹ : EqvGen r x✝ y✝
a✝ : EqvGen r y✝ z✝
hab : r x✝ y✝
hbc : r y✝ z✝
⊢ r x✝ z✝
state_after: no goals
Theorem: continuousInv_inf
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: refine continuousInv_iInf fun b => ?_
state_before: G : Type w
H : Type x
α : Type u
β : Type v
ι' : Sort u_1
inst✝ : Inv G
t₁ t₂ : TopologicalSpace G
h₁ : ContinuousInv G
h₂ : ContinuousInv G
⊢ ContinuousInv G
state_after: G : Type w
H : Type x
α : Type u
β : Type v
ι' : Sort u_1
inst✝ : Inv G
t₁ t₂ : TopologicalSpace G
h₁ : ContinuousInv G
h₂ : ContinuousInv G
b : Bool
⊢ ContinuousInv G

tactic: cases b <;> assumption
state_before: G : Type w
H : Type x
α : Type u
β : Type v
ι' : Sort u_1
inst✝ : Inv G
t₁ t₂ : TopologicalSpace G
h₁ : ContinuousInv G
h₂ : ContinuousInv G
b : Bool
⊢ ContinuousInv G
state_after: no goals
Theorem: differentiable_neg_iff
File: Mathlib/Analysis/Calculus/FDeriv/Add.lean

tactic: simpa only [neg_neg] using h.neg
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type u_4
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type u_5
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
h : Differentiable 𝕜 fun y => -f y
⊢ Differentiable 𝕜 f
state_after: no goals
Theorem: SimpleGraph.dart_card_eq_sum_degrees
File: Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean

tactic: haveI := Classical.decEq V
state_before: V : Type u
G : SimpleGraph V
inst✝² : Fintype V
inst✝¹ : DecidableRel G.Adj
inst✝ : Fintype (Sym2 V)
⊢ Fintype.card G.Dart = ∑ v : V, G.degree v
state_after: V : Type u
G : SimpleGraph V
inst✝² : Fintype V
inst✝¹ : DecidableRel G.Adj
inst✝ : Fintype (Sym2 V)
this : DecidableEq V
⊢ Fintype.card G.Dart = ∑ v : V, G.degree v

tactic: simp only [← card_univ, ← dart_fst_fiber_card_eq_degree]
state_before: V : Type u
G : SimpleGraph V
inst✝² : Fintype V
inst✝¹ : DecidableRel G.Adj
inst✝ : Fintype (Sym2 V)
this : DecidableEq V
⊢ Fintype.card G.Dart = ∑ v : V, G.degree v
state_after: V : Type u
G : SimpleGraph V
inst✝² : Fintype V
inst✝¹ : DecidableRel G.Adj
inst✝ : Fintype (Sym2 V)
this : DecidableEq V
⊢ univ.card = ∑ x : V, (filter (fun d => d.toProd.1 = x) univ).card

tactic: exact card_eq_sum_card_fiberwise (by simp)
state_before: V : Type u
G : SimpleGraph V
inst✝² : Fintype V
inst✝¹ : DecidableRel G.Adj
inst✝ : Fintype (Sym2 V)
this : DecidableEq V
⊢ univ.card = ∑ x : V, (filter (fun d => d.toProd.1 = x) univ).card
state_after: no goals

tactic: simp
state_before: V : Type u
G : SimpleGraph V
inst✝² : Fintype V
inst✝¹ : DecidableRel G.Adj
inst✝ : Fintype (Sym2 V)
this : DecidableEq V
⊢ ∀ x ∈ univ, x.toProd.1 ∈ univ
state_after: no goals
Theorem: CategoryTheory.Functor.preservesZeroMorphisms_of_map_exact
File: Mathlib/CategoryTheory/Abelian/Exact.lean

tactic: replace h := (h (exact_of_zero (𝟙 0) (𝟙 0))).w
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : Abelian C
A : Type u₁
B : Type u₂
inst✝³ : Category.{v₁, u₁} A
inst✝² : Category.{v₂, u₂} B
inst✝¹ : Abelian A
inst✝ : Abelian B
L : A ⥤ B
h : ∀ ⦃X Y Z : A⦄ {f : X ⟶ Y} {g : Y ⟶ Z}, Exact f g → Exact (L.map f) (L.map g)
⊢ L.PreservesZeroMorphisms
state_after: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : Abelian C
A : Type u₁
B : Type u₂
inst✝³ : Category.{v₁, u₁} A
inst✝² : Category.{v₂, u₂} B
inst✝¹ : Abelian A
inst✝ : Abelian B
L : A ⥤ B
h : L.map (𝟙 0) ≫ L.map (𝟙 0) = 0
⊢ L.PreservesZeroMorphisms

tactic: rw [L.map_id, Category.comp_id] at h
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : Abelian C
A : Type u₁
B : Type u₂
inst✝³ : Category.{v₁, u₁} A
inst✝² : Category.{v₂, u₂} B
inst✝¹ : Abelian A
inst✝ : Abelian B
L : A ⥤ B
h : L.map (𝟙 0) ≫ L.map (𝟙 0) = 0
⊢ L.PreservesZeroMorphisms
state_after: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : Abelian C
A : Type u₁
B : Type u₂
inst✝³ : Category.{v₁, u₁} A
inst✝² : Category.{v₂, u₂} B
inst✝¹ : Abelian A
inst✝ : Abelian B
L : A ⥤ B
h : 𝟙 (L.obj 0) = 0
⊢ L.PreservesZeroMorphisms

tactic: exact preservesZeroMorphisms_of_map_zero_object (idZeroEquivIsoZero _ h)
state_before: C : Type u₁
inst✝⁵ : Category.{v₁, u₁} C
inst✝⁴ : Abelian C
A : Type u₁
B : Type u₂
inst✝³ : Category.{v₁, u₁} A
inst✝² : Category.{v₂, u₂} B
inst✝¹ : Abelian A
inst✝ : Abelian B
L : A ⥤ B
h : 𝟙 (L.obj 0) = 0
⊢ L.PreservesZeroMorphisms
state_after: no goals
Theorem: ProbabilityTheory.measurableSet_kernel_integrable
File: Mathlib/Probability/Kernel/MeasurableIntegral.lean

tactic: simp_rw [Integrable, hf.of_uncurry_left.aestronglyMeasurable, true_and_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
E : Type u_4
inst✝² : NormedAddCommGroup E
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : α → β → E
hf : StronglyMeasurable (uncurry f)
⊢ MeasurableSet {x | Integrable (f x) (κ x)}
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
E : Type u_4
inst✝² : NormedAddCommGroup E
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : α → β → E
hf : StronglyMeasurable (uncurry f)
⊢ MeasurableSet {x | HasFiniteIntegral (f x) (κ x)}

tactic: exact measurableSet_lt (Measurable.lintegral_kernel_prod_right hf.ennnorm) measurable_const
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
E : Type u_4
inst✝² : NormedAddCommGroup E
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : α → β → E
hf : StronglyMeasurable (uncurry f)
⊢ MeasurableSet {x | HasFiniteIntegral (f x) (κ x)}
state_after: no goals
Theorem: IsPrimitiveRoot.map_rootsOfUnity
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: letI : CommMonoid Sˣ := inferInstance
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S✝ : Type u_5
F✝ : Type u_6
inst✝⁸ : CommMonoid M
inst✝⁷ : CommMonoid N
inst✝⁶ : DivisionCommMonoid G
k l : ℕ
inst✝⁵ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k
inst✝⁴ : IsDomain R
S : Type u_7
F : Type u_8
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : FunLike F R S
inst✝ : MonoidHomClass F R S
ζ : R
n : ℕ+
hζ : IsPrimitiveRoot ζ ↑n
f : F
hf : Function.Injective ⇑f
⊢ Subgroup.map (Units.map ↑f) (rootsOfUnity n R) = rootsOfUnity n S
state_after: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S✝ : Type u_5
F✝ : Type u_6
inst✝⁸ : CommMonoid M
inst✝⁷ : CommMonoid N
inst✝⁶ : DivisionCommMonoid G
k l : ℕ
inst✝⁵ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k
inst✝⁴ : IsDomain R
S : Type u_7
F : Type u_8
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : FunLike F R S
inst✝ : MonoidHomClass F R S
ζ : R
n : ℕ+
hζ : IsPrimitiveRoot ζ ↑n
f : F
hf : Function.Injective ⇑f
this : CommMonoid Sˣ := inferInstance
⊢ Subgroup.map (Units.map ↑f) (rootsOfUnity n R) = rootsOfUnity n S

tactic: replace hζ := hζ.isUnit_unit n.2
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S✝ : Type u_5
F✝ : Type u_6
inst✝⁸ : CommMonoid M
inst✝⁷ : CommMonoid N
inst✝⁶ : DivisionCommMonoid G
k l : ℕ
inst✝⁵ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k
inst✝⁴ : IsDomain R
S : Type u_7
F : Type u_8
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : FunLike F R S
inst✝ : MonoidHomClass F R S
ζ : R
n : ℕ+
hζ : IsPrimitiveRoot ζ ↑n
f : F
hf : Function.Injective ⇑f
this : CommMonoid Sˣ := inferInstance
⊢ Subgroup.map (Units.map ↑f) (rootsOfUnity n R) = rootsOfUnity n S
state_after: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S✝ : Type u_5
F✝ : Type u_6
inst✝⁸ : CommMonoid M
inst✝⁷ : CommMonoid N
inst✝⁶ : DivisionCommMonoid G
k l : ℕ
inst✝⁵ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k
inst✝⁴ : IsDomain R
S : Type u_7
F : Type u_8
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : FunLike F R S
inst✝ : MonoidHomClass F R S
ζ : R
n : ℕ+
hζ✝ : IsPrimitiveRoot ζ ↑n
f : F
hf : Function.Injective ⇑f
this : CommMonoid Sˣ := inferInstance
hζ : IsPrimitiveRoot ⋯.unit ↑n
⊢ Subgroup.map (Units.map ↑f) (rootsOfUnity n R) = rootsOfUnity n S

tactic: rw [← hζ.zpowers_eq,
  ← (hζ.map_of_injective (Units.map_injective (f := (f : R →* S)) hf)).zpowers_eq,
  MonoidHom.map_zpowers]
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S✝ : Type u_5
F✝ : Type u_6
inst✝⁸ : CommMonoid M
inst✝⁷ : CommMonoid N
inst✝⁶ : DivisionCommMonoid G
k l : ℕ
inst✝⁵ : CommRing R
ζ✝ : Rˣ
h : IsPrimitiveRoot ζ✝ k
inst✝⁴ : IsDomain R
S : Type u_7
F : Type u_8
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : FunLike F R S
inst✝ : MonoidHomClass F R S
ζ : R
n : ℕ+
hζ✝ : IsPrimitiveRoot ζ ↑n
f : F
hf : Function.Injective ⇑f
this : CommMonoid Sˣ := inferInstance
hζ : IsPrimitiveRoot ⋯.unit ↑n
⊢ Subgroup.map (Units.map ↑f) (rootsOfUnity n R) = rootsOfUnity n S
state_after: no goals
Theorem: mul_bit1
File: Mathlib/Algebra/Order/Ring/Int.lean

tactic: rw [bit1, mul_add, mul_bit0, mul_one]
state_before: R : Type u_1
inst✝ : NonAssocRing R
n✝ r✝ n r : R
⊢ r * bit1 n = 2 • (r * n) + r
state_after: no goals
Theorem: iUnion_Ico_zsmul
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simpa only [zero_add] using iUnion_Ico_add_zsmul hp 0
state_before: α : Type u_1
inst✝¹ : LinearOrderedAddCommGroup α
inst✝ : Archimedean α
p : α
hp : 0 < p
a : α
⊢ ⋃ n, Ico (n • p) ((n + 1) • p) = univ
state_after: no goals
Theorem: Mathlib.Meta.NormNum.isInt_emod
File: Mathlib/Tactic/NormNum/DivMod.lean

tactic: obtain ⟨⟨rfl⟩, ⟨rfl⟩⟩ := ha, hb
state_before: a b q m a' : ℤ
b' r : ℕ
ha : IsInt a a'
hb : IsNat b b'
hm : q * ↑b' = m
h : ↑r + m = a'
h₂ : r.blt b' = true
⊢ a % b = ↑r
state_after: case mk.mk
a q m : ℤ
b' r : ℕ
hm : q * ↑b' = m
h₂ : r.blt b' = true
h : ↑r + m = a
⊢ a % ↑b' = ↑r

tactic: simp only [← h, ← hm, Int.add_mul_emod_self]
state_before: case mk.mk
a q m : ℤ
b' r : ℕ
hm : q * ↑b' = m
h₂ : r.blt b' = true
h : ↑r + m = a
⊢ a % ↑b' = ↑r
state_after: case mk.mk
a q m : ℤ
b' r : ℕ
hm : q * ↑b' = m
h₂ : r.blt b' = true
h : ↑r + m = a
⊢ ↑r % ↑b' = ↑r

tactic: rw [Int.emod_eq_of_lt] <;> [simp; simpa using h₂]
state_before: case mk.mk
a q m : ℤ
b' r : ℕ
hm : q * ↑b' = m
h₂ : r.blt b' = true
h : ↑r + m = a
⊢ ↑r % ↑b' = ↑r
state_after: no goals
Theorem: Additive.isAddSubgroup_iff
File: Mathlib/Deprecated/Subgroup.lean

tactic: rintro ⟨⟨h₁, h₂⟩, h₃⟩
state_before: G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
inst✝¹ : Group G
inst✝ : AddGroup A
s : Set G
⊢ IsAddSubgroup s → IsSubgroup s
state_after: case mk.mk
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
inst✝¹ : Group G
inst✝ : AddGroup A
s : Set G
h₃ : ∀ {a : Additive G}, a ∈ s → -a ∈ s
h₁ : 0 ∈ s
h₂ : ∀ {a b : Additive G}, a ∈ s → b ∈ s → a + b ∈ s
⊢ IsSubgroup s

tactic: exact @IsSubgroup.mk G _ _ ⟨h₁, @h₂⟩ @h₃
state_before: case mk.mk
G : Type u_1
H : Type u_2
A : Type u_3
a a₁ a₂ b c : G
inst✝¹ : Group G
inst✝ : AddGroup A
s : Set G
h₃ : ∀ {a : Additive G}, a ∈ s → -a ∈ s
h₁ : 0 ∈ s
h₂ : ∀ {a b : Additive G}, a ∈ s → b ∈ s → a + b ∈ s
⊢ IsSubgroup s
state_after: no goals
Theorem: Finsupp.prod_mapDomain_index_inj
File: Mathlib/Data/Finsupp/Basic.lean

tactic: rw [← Function.Embedding.coeFn_mk f hf, ← embDomain_eq_mapDomain, prod_embDomain]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Type u_4
M : Type u_5
M' : Type u_6
N : Type u_7
P : Type u_8
G : Type u_9
H : Type u_10
R : Type u_11
S : Type u_12
inst✝¹ : AddCommMonoid M
v v₁ v₂ : α →₀ M
inst✝ : CommMonoid N
f : α → β
s : α →₀ M
h : β → M → N
hf : Injective f
⊢ (mapDomain f s).prod h = s.prod fun a b => h (f a) b
state_after: no goals
Theorem: GaussianInt.toComplex_def'
File: Mathlib/NumberTheory/Zsqrtd/GaussianInt.lean

tactic: simp [toComplex_def]
state_before: x y : ℤ
⊢ toComplex { re := x, im := y } = ↑x + ↑y * I
state_after: no goals
Theorem: Nat.modEq_sub
File: Mathlib/Data/Nat/ModEq.lean

tactic: rw [Int.ofNat_sub h]
state_before: m n a b c d : ℕ
h : b ≤ a
⊢ ↑(a - b) ∣ ↑a - ↑b
state_after: no goals
Theorem: UniformSpace.metrizableSpace
File: Mathlib/Topology/Metrizable/Uniformity.lean

tactic: letI := UniformSpace.metricSpace X
state_before: X : Type u_1
inst✝² : UniformSpace X
inst✝¹ : (𝓤 X).IsCountablyGenerated
inst✝ : T0Space X
⊢ TopologicalSpace.MetrizableSpace X
state_after: X : Type u_1
inst✝² : UniformSpace X
inst✝¹ : (𝓤 X).IsCountablyGenerated
inst✝ : T0Space X
this : MetricSpace X := UniformSpace.metricSpace X
⊢ TopologicalSpace.MetrizableSpace X

tactic: infer_instance
state_before: X : Type u_1
inst✝² : UniformSpace X
inst✝¹ : (𝓤 X).IsCountablyGenerated
inst✝ : T0Space X
this : MetricSpace X := UniformSpace.metricSpace X
⊢ TopologicalSpace.MetrizableSpace X
state_after: no goals
Theorem: Matrix.Nondegenerate.toBilin'
File: Mathlib/LinearAlgebra/Matrix/BilinearForm.lean

tactic: simpa only [toBilin'_apply'] using hx y
state_before: R : Type u_1
M✝ : Type u_2
inst✝¹⁹ : CommSemiring R
inst✝¹⁸ : AddCommMonoid M✝
inst✝¹⁷ : Module R M✝
R₁ : Type u_3
M₁ : Type u_4
inst✝¹⁶ : CommRing R₁
inst✝¹⁵ : AddCommGroup M₁
inst✝¹⁴ : Module R₁ M₁
R₂ : Type u_5
M₂ : Type u_6
inst✝¹³ : CommSemiring R₂
inst✝¹² : AddCommMonoid M₂
inst✝¹¹ : Module R₂ M₂
R₃ : Type u_7
M₃ : Type u_8
inst✝¹⁰ : CommRing R₃
inst✝⁹ : AddCommGroup M₃
inst✝⁸ : Module R₃ M₃
V : Type u_9
K : Type u_10
inst✝⁷ : Field K
inst✝⁶ : AddCommGroup V
inst✝⁵ : Module K V
B : BilinForm R M✝
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
A : Type u_11
inst✝⁴ : CommRing A
inst✝³ : IsDomain A
inst✝² : Module A M₃
B₃ : BilinForm A M₃
ι : Type u_12
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
M : Matrix ι ι R₃
h : M.Nondegenerate
x : ι → R₃
hx : ∀ (n : ι → R₃), ((Matrix.toBilin' M) x) n = 0
y : ι → R₃
⊢ x ⬝ᵥ M *ᵥ y = 0
state_after: no goals
Theorem: Set.isUnit_iff_singleton
File: Mathlib/Data/Set/Pointwise/Basic.lean

tactic: simp only [isUnit_iff, Group.isUnit, and_true_iff]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝ : Group α
s t : Set α
a b : α
⊢ IsUnit s ↔ ∃ a, s = {a}
state_after: no goals
Theorem: MeasurableSet.measurableSet_limsup
File: Mathlib/MeasureTheory/MeasurableSpace/Basic.lean

tactic: simpa only [← blimsup_true] using measurableSet_blimsup fun n _ => hs n
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
δ' : Type u_5
ι : Sort uι
s✝ t u : Set α
inst✝ : MeasurableSpace α
s : ℕ → Set α
hs : ∀ (n : ℕ), MeasurableSet (s n)
⊢ MeasurableSet (limsup s atTop)
state_after: no goals
Theorem: continuous_congr_of_inseparable
File: Mathlib/Topology/Inseparable.lean

tactic: simp_rw [SeparationQuotient.inducing_mk.continuous_iff (Y := Y)]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
t : Set (SeparationQuotient X)
h : ∀ (x : X), f x ~ᵢ g x
⊢ Continuous f ↔ Continuous g
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
t : Set (SeparationQuotient X)
h : ∀ (x : X), f x ~ᵢ g x
⊢ Continuous (SeparationQuotient.mk ∘ f) ↔ Continuous (SeparationQuotient.mk ∘ g)

tactic: exact continuous_congr fun x ↦ SeparationQuotient.mk_eq_mk.mpr (h x)
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type u_4
ι : Type u_5
π : ι → Type u_6
inst✝³ : TopologicalSpace X
inst✝² : TopologicalSpace Y
inst✝¹ : TopologicalSpace Z
inst✝ : (i : ι) → TopologicalSpace (π i)
x y z : X
s : Set X
f g : X → Y
t : Set (SeparationQuotient X)
h : ∀ (x : X), f x ~ᵢ g x
⊢ Continuous (SeparationQuotient.mk ∘ f) ↔ Continuous (SeparationQuotient.mk ∘ g)
state_after: no goals
Theorem: Seminorm.bddAbove_iff
File: Mathlib/Analysis/Seminorm.lean

tactic: dsimp
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
H : BddAbove (DFunLike.coe '' s)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
⊢ (fun f => ⇑f) p x ≤ (fun f => ⇑f) (sSup s) x
state_after: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
H : BddAbove (DFunLike.coe '' s)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
⊢ p x ≤ (sSup s) x

tactic: rw [Seminorm.coe_sSup_eq' H, iSup_apply]
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
H : BddAbove (DFunLike.coe '' s)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
⊢ p x ≤ (sSup s) x
state_after: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
H : BddAbove (DFunLike.coe '' s)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
⊢ p x ≤ ⨆ i, ↑i x

tactic: rcases H with ⟨q, hq⟩
state_before: R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
H : BddAbove (DFunLike.coe '' s)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
⊢ p x ≤ ⨆ i, ↑i x
state_after: case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
q : E → ℝ
hq : q ∈ upperBounds (DFunLike.coe '' s)
⊢ p x ≤ ⨆ i, ↑i x

tactic: exact
  le_ciSup ⟨q x, forall_mem_range.mpr fun i : s => hq (mem_image_of_mem _ i.2) x⟩ ⟨p, hp⟩
state_before: case intro
R : Type u_1
R' : Type u_2
𝕜 : Type u_3
𝕜₂ : Type u_4
𝕜₃ : Type u_5
𝕝 : Type u_6
E : Type u_7
E₂ : Type u_8
E₃ : Type u_9
F : Type u_10
G : Type u_11
ι : Type u_12
inst✝² : NormedField 𝕜
inst✝¹ : AddCommGroup E
inst✝ : Module 𝕜 E
p✝ q✝ : Seminorm 𝕜 E
x✝ : E
s : Set (Seminorm 𝕜 E)
p : Seminorm 𝕜 E
hp : p ∈ s
x : E
q : E → ℝ
hq : q ∈ upperBounds (DFunLike.coe '' s)
⊢ p x ≤ ⨆ i, ↑i x
state_after: no goals
Theorem: ProbabilityTheory.kernel.lintegral_fst
File: Mathlib/Probability/Kernel/Composition.lean

tactic: rw [fst, lintegral_map _ measurable_fst a hg]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
δ : Type u_4
mδ : MeasurableSpace δ
γ : Type u_5
mγ : MeasurableSpace γ
f : β → γ
g✝ : γ → α
κ : ↥(kernel α (β × γ))
a : α
g : β → ℝ≥0∞
hg : Measurable g
⊢ ∫⁻ (c : β), g c ∂(fst κ) a = ∫⁻ (bc : β × γ), g bc.1 ∂κ a
state_after: no goals
Theorem: Convex.affinity
File: Mathlib/Analysis/Convex/Basic.lean

tactic: simpa only [← image_smul, ← image_vadd, image_image] using (hs.smul c).vadd z
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁴ : OrderedCommSemiring 𝕜
inst✝³ : AddCommMonoid E
inst✝² : AddCommMonoid F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s : Set E
hs : Convex 𝕜 s
z : E
c : 𝕜
⊢ Convex 𝕜 ((fun x => z + c • x) '' s)
state_after: no goals
Theorem: Ordering.Compares.eq_eq
File: Mathlib/Order/Compare.lean

tactic: injection h
state_before: α : Type u_1
β : Type u_2
inst✝ : Preorder α
a b : α
h✝ : lt.Compares a b
h : lt = eq
⊢ a = b
state_after: no goals

tactic: injection h
state_before: α : Type u_1
β : Type u_2
inst✝ : Preorder α
a b : α
h✝ : gt.Compares a b
h : gt = eq
⊢ a = b
state_after: no goals
Theorem: CoxeterSystem.isRightDescent_inv_iff
File: Mathlib/GroupTheory/Coxeter/Length.lean

tactic: simpa using (cs.isLeftDescent_inv_iff (w := w⁻¹)).symm
state_before: B : Type u_1
W : Type u_2
inst✝ : Group W
M : CoxeterMatrix B
cs : CoxeterSystem M W
w : W
i : B
⊢ cs.IsRightDescent w⁻¹ i ↔ cs.IsLeftDescent w i
state_after: no goals
Theorem: Multiset.prod_toList
File: Mathlib/Algebra/BigOperators/Group/Multiset.lean

tactic: conv_rhs => rw [← coe_toList s]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : CommMonoid α
inst✝ : CommMonoid β
s✝ t : Multiset α
a : α
m : Multiset ι
f g : ι → α
s : Multiset α
⊢ s.toList.prod = s.prod
state_after: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : CommMonoid α
inst✝ : CommMonoid β
s✝ t : Multiset α
a : α
m : Multiset ι
f g : ι → α
s : Multiset α
⊢ s.toList.prod = (↑s.toList).prod

tactic: rw [prod_coe]
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : CommMonoid α
inst✝ : CommMonoid β
s✝ t : Multiset α
a : α
m : Multiset ι
f g : ι → α
s : Multiset α
⊢ s.toList.prod = (↑s.toList).prod
state_after: no goals
Theorem: uniformConvexOn_zero
File: Mathlib/Analysis/Convex/Strong.lean

tactic: simp [UniformConvexOn, ConvexOn]
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
φ ψ : ℝ → ℝ
s : Set E
a b m : ℝ
x y : E
f g : E → ℝ
⊢ UniformConvexOn s 0 f ↔ ConvexOn ℝ s f
state_after: no goals
Theorem: NumberField.mixedEmbedding.normAtPlace_apply_isReal
File: Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean

tactic: rw [normAtPlace, MonoidWithZeroHom.coe_mk, ZeroHom.coe_mk, dif_pos]
state_before: K : Type u_1
inst✝ : Field K
w : InfinitePlace K
hw : w.IsReal
x : ({ w // w.IsReal } → ℝ) × ({ w // w.IsComplex } → ℂ)
⊢ (normAtPlace w) x = ‖x.1 ⟨w, hw⟩‖
state_after: no goals
Theorem: Set.image_sub_const_Icc
File: Mathlib/Data/Set/Pointwise/Interval.lean

tactic: simp [sub_eq_neg_add]
state_before: α : Type u_1
inst✝ : OrderedAddCommGroup α
a b c : α
⊢ (fun x => x - a) '' Icc b c = Icc (b - a) (c - a)
state_after: no goals