1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Measurable.setLIntegral_kernel_prod_right
File: Mathlib/Probability/Kernel/MeasurableIntegral.lean

tactic: simp_rw [← lintegral_restrict κ hs]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : α → β → ℝ≥0∞
hf : Measurable (uncurry f)
s : Set β
hs : MeasurableSet s
⊢ Measurable fun a => ∫⁻ (b : β) in s, f a b ∂κ a
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : α → β → ℝ≥0∞
hf : Measurable (uncurry f)
s : Set β
hs : MeasurableSet s
⊢ Measurable fun a => ∫⁻ (b : β), f a b ∂(kernel.restrict κ hs) a

tactic: exact hf.lintegral_kernel_prod_right
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
mγ : MeasurableSpace γ
κ : ↥(kernel α β)
η : ↥(kernel (α × β) γ)
a : α
inst✝¹ : IsSFiniteKernel κ
inst✝ : IsSFiniteKernel η
f : α → β → ℝ≥0∞
hf : Measurable (uncurry f)
s : Set β
hs : MeasurableSet s
⊢ Measurable fun a => ∫⁻ (b : β), f a b ∂(kernel.restrict κ hs) a
state_after: no goals
Theorem: Nat.pow_left_injective
File: Mathlib/Data/Nat/Defs.lean

tactic: simp [Injective, le_antisymm_iff, Nat.pow_le_pow_iff_left hn]
state_before: a b c d m n k : ℕ
p q : ℕ → Prop
hn : n ≠ 0
⊢ Injective fun a => a ^ n
state_after: no goals
Theorem: PowerSeries.trunc_X_of
File: Mathlib/RingTheory/PowerSeries/Trunc.lean

tactic: cases n with
| zero => contradiction
| succ n =>
  cases n with
  | zero => contradiction
  | succ n => exact trunc_X n
state_before: R : Type u_1
inst✝ : Semiring R
n : ℕ
hn : 2 ≤ n
⊢ trunc n X = Polynomial.X
state_after: no goals

tactic: contradiction
state_before: case zero
R : Type u_1
inst✝ : Semiring R
hn : 2 ≤ 0
⊢ trunc 0 X = Polynomial.X
state_after: no goals

tactic: cases n with
| zero => contradiction
| succ n => exact trunc_X n
state_before: case succ
R : Type u_1
inst✝ : Semiring R
n : ℕ
hn : 2 ≤ n + 1
⊢ trunc (n + 1) X = Polynomial.X
state_after: no goals

tactic: contradiction
state_before: case succ.zero
R : Type u_1
inst✝ : Semiring R
hn : 2 ≤ 0 + 1
⊢ trunc (0 + 1) X = Polynomial.X
state_after: no goals

tactic: exact trunc_X n
state_before: case succ.succ
R : Type u_1
inst✝ : Semiring R
n : ℕ
hn : 2 ≤ n + 1 + 1
⊢ trunc (n + 1 + 1) X = Polynomial.X
state_after: no goals
Theorem: Cardinal.lift_lt_nat_iff
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [← lift_natCast.{v,u}, lift_lt]
state_before: α β : Type u
a : Cardinal.{u}
n : ℕ
⊢ lift.{v, u} a < ↑n ↔ a < ↑n
state_after: no goals
Theorem: Nat.ord_compl_of_not_prime
File: Mathlib/Data/Nat/Factorization/Basic.lean

tactic: simp [factorization_eq_zero_of_non_prime n hp]
state_before: a b m n✝ p✝ n p : ℕ
hp : ¬Prime p
⊢ n / p ^ n.factorization p = n
state_after: no goals
Theorem: map_extChartAt_symm_nhdsWithin_range'
File: Mathlib/Geometry/Manifold/SmoothManifoldWithCorners.lean

tactic: rwa [← extChartAt_source I]
state_before: 𝕜 : Type u_1
E : Type u_2
M : Type u_3
H : Type u_4
E' : Type u_5
M' : Type u_6
H' : Type u_7
inst✝¹⁰ : NontriviallyNormedField 𝕜
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace 𝕜 E
inst✝⁷ : TopologicalSpace H
inst✝⁶ : TopologicalSpace M
f f' : PartialHomeomorph M H
I : ModelWithCorners 𝕜 E H
inst✝⁵ : NormedAddCommGroup E'
inst✝⁴ : NormedSpace 𝕜 E'
inst✝³ : TopologicalSpace H'
inst✝² : TopologicalSpace M'
I' : ModelWithCorners 𝕜 E' H'
s t : Set M
inst✝¹ : ChartedSpace H M
inst✝ : ChartedSpace H' M'
x y : M
hy : y ∈ (extChartAt I x).source
⊢ y ∈ (chartAt H x).source
state_after: no goals
Theorem: nhdsSet_Ioc
File: Mathlib/Topology/Order/NhdsSet.lean

tactic: rw [← Ioo_insert_right h, nhdsSet_insert, nhdsSet_Ioo]
state_before: α : Type u_1
inst✝² : LinearOrder α
inst✝¹ : TopologicalSpace α
inst✝ : OrderClosedTopology α
a b c d : α
h : a < b
⊢ 𝓝ˢ (Ioc a b) = 𝓝 b ⊔ 𝓟 (Ioo a b)
state_after: no goals
Theorem: invOf_nonneg
File: Mathlib/Algebra/Order/Invertible.lean

tactic: simp only [mul_invOf_self, zero_lt_one]
state_before: α : Type u_1
inst✝¹ : LinearOrderedSemiring α
a : α
inst✝ : Invertible a
⊢ 0 < a * ⅟a
state_after: no goals
Theorem: List.mem_rotate
File: Mathlib/Data/List/Rotate.lean

tactic: simp
state_before: α : Type u
x✝ : α
n : ℕ
⊢ x✝ ∈ [].rotate n ↔ x✝ ∈ []
state_after: no goals

tactic: simp
state_before: α : Type u
a : α
l : List α
x✝ : α
⊢ x✝ ∈ (a :: l).rotate 0 ↔ x✝ ∈ a :: l
state_after: no goals

tactic: simp [rotate_cons_succ, mem_rotate, or_comm]
state_before: α : Type u
a : α
l : List α
x✝ : α
n : ℕ
⊢ x✝ ∈ (a :: l).rotate (n + 1) ↔ x✝ ∈ a :: l
state_after: no goals
Theorem: Pell.Solution₁.eq_one_or_neg_one_iff_y_eq_zero
File: Mathlib/NumberTheory/Pell.lean

tactic: refine ⟨fun H => H.elim (fun h => by simp [h]) fun h => by simp [h], fun H => ?_⟩
state_before: d : ℤ
a : Solution₁ d
⊢ a = 1 ∨ a = -1 ↔ a.y = 0
state_after: d : ℤ
a : Solution₁ d
H : a.y = 0
⊢ a = 1 ∨ a = -1

tactic: have prop := a.prop
state_before: d : ℤ
a : Solution₁ d
H : a.y = 0
⊢ a = 1 ∨ a = -1
state_after: d : ℤ
a : Solution₁ d
H : a.y = 0
prop : a.x ^ 2 - d * a.y ^ 2 = 1
⊢ a = 1 ∨ a = -1

tactic: rw [H, sq (0 : ℤ), mul_zero, mul_zero, sub_zero, sq_eq_one_iff] at prop
state_before: d : ℤ
a : Solution₁ d
H : a.y = 0
prop : a.x ^ 2 - d * a.y ^ 2 = 1
⊢ a = 1 ∨ a = -1
state_after: d : ℤ
a : Solution₁ d
H : a.y = 0
prop : a.x = 1 ∨ a.x = -1
⊢ a = 1 ∨ a = -1

tactic: exact prop.imp (fun h => ext h H) fun h => ext h H
state_before: d : ℤ
a : Solution₁ d
H : a.y = 0
prop : a.x = 1 ∨ a.x = -1
⊢ a = 1 ∨ a = -1
state_after: no goals

tactic: simp [h]
state_before: d : ℤ
a : Solution₁ d
H : a = 1 ∨ a = -1
h : a = 1
⊢ a.y = 0
state_after: no goals

tactic: simp [h]
state_before: d : ℤ
a : Solution₁ d
H : a = 1 ∨ a = -1
h : a = -1
⊢ a.y = 0
state_after: no goals
Theorem: Set.image_image2_antidistrib_right
File: Mathlib/Data/Set/NAry.lean

tactic: rw [image_id']
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
f f'✝ : α → β → γ
g✝ g'✝ : α → β → γ → δ
s s' : Set α
t t' : Set β
u u' : Set γ
v : Set δ
a a' : α
b b' : β
c c' : γ
d d' : δ
g : γ → δ
f' : β → α' → δ
g' : α → α'
h_antidistrib : ∀ (a : α) (b : β), g (f a b) = f' b (g' a)
⊢ image2 f' ((fun b => b) '' t) (g' '' s) = image2 f' t (g' '' s)
state_after: no goals
Theorem: WittVector.mapFun.neg
File: Mathlib/RingTheory/WittVector/Basic.lean

tactic: map_fun_tac
state_before: p : ℕ
R : Type u_1
S : Type u_2
T : Type u_3
hp : Fact (Nat.Prime p)
inst✝² : CommRing R
inst✝¹ : CommRing S
inst✝ : CommRing T
α : Type u_4
β : Type u_5
f : R →+* S
x y : 𝕎 R
⊢ mapFun (⇑f) (-x) = -mapFun (⇑f) x
state_after: no goals
Theorem: Polynomial.derivative_X_sub_C_pow
File: Mathlib/Algebra/Polynomial/Derivative.lean

tactic: rw [derivative_pow, derivative_X_sub_C, mul_one]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : CommRing R
c : R
m : ℕ
⊢ derivative ((X - C c) ^ m) = C ↑m * (X - C c) ^ (m - 1)
state_after: no goals
Theorem: MeasureTheory.AEEqFun.comp₂_toGerm
File: Mathlib/MeasureTheory/Function/AEEqFun.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝³ : MeasurableSpace α
μ ν : Measure α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
g : β → γ → δ
hg : Continuous (uncurry g)
f₁✝ : α →ₘ[μ] β
f₂✝ : α →ₘ[μ] γ
f₁ : α → β
x✝¹ : AEStronglyMeasurable f₁ μ
f₂ : α → γ
x✝ : AEStronglyMeasurable f₂ μ
⊢ (comp₂ g hg (mk f₁ x✝¹) (mk f₂ x✝)).toGerm = Germ.map₂ g (mk f₁ x✝¹).toGerm (mk f₂ x✝).toGerm
state_after: no goals
Theorem: Matroid.Matroidᵣ.coe_inj
File: Mathlib/Data/Matroid/Restrict.lean

tactic: cases M₁
state_before: α : Type u_1
M : Matroid α
R I J X Y : Set α
N : Matroid α
M₁ M₂ : Matroidᵣ α
⊢ M₁.toMatroid = M₂.toMatroid ↔ M₁ = M₂
state_after: case ofMatroid
α : Type u_1
M : Matroid α
R I J X Y : Set α
N : Matroid α
M₂ : Matroidᵣ α
toMatroid✝ : Matroid α
⊢ { toMatroid := toMatroid✝ }.toMatroid = M₂.toMatroid ↔ { toMatroid := toMatroid✝ } = M₂

tactic: cases M₂
state_before: case ofMatroid
α : Type u_1
M : Matroid α
R I J X Y : Set α
N : Matroid α
M₂ : Matroidᵣ α
toMatroid✝ : Matroid α
⊢ { toMatroid := toMatroid✝ }.toMatroid = M₂.toMatroid ↔ { toMatroid := toMatroid✝ } = M₂
state_after: case ofMatroid.ofMatroid
α : Type u_1
M : Matroid α
R I J X Y : Set α
N toMatroid✝¹ toMatroid✝ : Matroid α
⊢ { toMatroid := toMatroid✝¹ }.toMatroid = { toMatroid := toMatroid✝ }.toMatroid ↔
    { toMatroid := toMatroid✝¹ } = { toMatroid := toMatroid✝ }

tactic: simp
state_before: case ofMatroid.ofMatroid
α : Type u_1
M : Matroid α
R I J X Y : Set α
N toMatroid✝¹ toMatroid✝ : Matroid α
⊢ { toMatroid := toMatroid✝¹ }.toMatroid = { toMatroid := toMatroid✝ }.toMatroid ↔
    { toMatroid := toMatroid✝¹ } = { toMatroid := toMatroid✝ }
state_after: no goals
Theorem: Real.real_sqrt_lt_nat_sqrt_succ
File: Mathlib/Data/Real/Sqrt.lean

tactic: rw [sqrt_lt (by simp)] <;> norm_cast
state_before: x✝ y✝ x y : ℝ
a : ℕ
⊢ √↑a < ↑a.sqrt + 1
state_after: x✝ y✝ x y : ℝ
a : ℕ
⊢ a < (a.sqrt + 1) ^ 2

x✝ y✝ x y : ℝ
a : ℕ
⊢ 0 ≤ a.sqrt + 1

tactic: simp
state_before: x✝ y✝ x y : ℝ
a : ℕ
⊢ 0 ≤ ↑a
state_after: no goals

tactic: exact Nat.lt_succ_sqrt' a
state_before: x✝ y✝ x y : ℝ
a : ℕ
⊢ a < (a.sqrt + 1) ^ 2
state_after: no goals

tactic: exact Nat.le_add_left 0 (Nat.sqrt a + 1)
state_before: x✝ y✝ x y : ℝ
a : ℕ
⊢ 0 ≤ a.sqrt + 1
state_after: no goals
Theorem: OrthonormalBasis.coe_toBasis_repr_apply
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: rw [← Basis.equivFun_apply, OrthonormalBasis.coe_toBasis_repr]
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝⁹ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type u_7
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
x : E
i : ι
⊢ (b.toBasis.repr x) i = b.repr x i
state_after: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝⁹ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type u_7
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
x : E
i : ι
⊢ b.repr.toLinearEquiv x i = b.repr x i

tactic: erw [LinearIsometryEquiv.coe_toLinearEquiv]
state_before: ι : Type u_1
ι' : Type u_2
𝕜 : Type u_3
inst✝⁹ : _root_.RCLike 𝕜
E : Type u_4
inst✝⁸ : NormedAddCommGroup E
inst✝⁷ : InnerProductSpace 𝕜 E
E' : Type u_5
inst✝⁶ : NormedAddCommGroup E'
inst✝⁵ : InnerProductSpace 𝕜 E'
F : Type u_6
inst✝⁴ : NormedAddCommGroup F
inst✝³ : InnerProductSpace ℝ F
F' : Type u_7
inst✝² : NormedAddCommGroup F'
inst✝¹ : InnerProductSpace ℝ F'
inst✝ : Fintype ι
b : OrthonormalBasis ι 𝕜 E
x : E
i : ι
⊢ b.repr.toLinearEquiv x i = b.repr x i
state_after: no goals
Theorem: Set.diff_nonempty_of_ncard_lt_ncard
File: Mathlib/Data/Set/Card.lean

tactic: rw [Set.nonempty_iff_ne_empty, Ne, diff_eq_empty]
state_before: α : Type u_1
β : Type u_2
s t : Set α
f : α → β
h : s.ncard < t.ncard
hs : autoParam s.Finite _auto✝
⊢ (t \ s).Nonempty
state_after: α : Type u_1
β : Type u_2
s t : Set α
f : α → β
h : s.ncard < t.ncard
hs : autoParam s.Finite _auto✝
⊢ ¬t ⊆ s

tactic: exact fun h' ↦ h.not_le (ncard_le_ncard h' hs)
state_before: α : Type u_1
β : Type u_2
s t : Set α
f : α → β
h : s.ncard < t.ncard
hs : autoParam s.Finite _auto✝
⊢ ¬t ⊆ s
state_after: no goals
Theorem: WittVector.ghostComponent_verschiebungFun
File: Mathlib/RingTheory/WittVector/Verschiebung.lean

tactic: simp only [ghostComponent_apply, aeval_wittPolynomial]
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
x : 𝕎 R
n : ℕ
⊢ (ghostComponent (n + 1)) x.verschiebungFun = ↑p * (ghostComponent n) x
state_after: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
x : 𝕎 R
n : ℕ
⊢ ∑ i ∈ Finset.range (n + 1 + 1), ↑p ^ i * x.verschiebungFun.coeff i ^ p ^ (n + 1 - i) =
    ↑p * ∑ i ∈ Finset.range (n + 1), ↑p ^ i * x.coeff i ^ p ^ (n - i)

tactic: rw [Finset.sum_range_succ', verschiebungFun_coeff, if_pos rfl,
  zero_pow (pow_ne_zero _ hp.1.ne_zero), mul_zero, add_zero, Finset.mul_sum, Finset.sum_congr rfl]
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
x : 𝕎 R
n : ℕ
⊢ ∑ i ∈ Finset.range (n + 1 + 1), ↑p ^ i * x.verschiebungFun.coeff i ^ p ^ (n + 1 - i) =
    ↑p * ∑ i ∈ Finset.range (n + 1), ↑p ^ i * x.coeff i ^ p ^ (n - i)
state_after: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
x : 𝕎 R
n : ℕ
⊢ ∀ x_1 ∈ Finset.range (n + 1),
    ↑p ^ (x_1 + 1) * x.verschiebungFun.coeff (x_1 + 1) ^ p ^ (n + 1 - (x_1 + 1)) =
      ↑p * (↑p ^ x_1 * x.coeff x_1 ^ p ^ (n - x_1))

tactic: rintro i -
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
x : 𝕎 R
n : ℕ
⊢ ∀ x_1 ∈ Finset.range (n + 1),
    ↑p ^ (x_1 + 1) * x.verschiebungFun.coeff (x_1 + 1) ^ p ^ (n + 1 - (x_1 + 1)) =
      ↑p * (↑p ^ x_1 * x.coeff x_1 ^ p ^ (n - x_1))
state_after: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
x : 𝕎 R
n i : ℕ
⊢ ↑p ^ (i + 1) * x.verschiebungFun.coeff (i + 1) ^ p ^ (n + 1 - (i + 1)) = ↑p * (↑p ^ i * x.coeff i ^ p ^ (n - i))

tactic: simp only [pow_succ', verschiebungFun_coeff_succ, Nat.succ_sub_succ_eq_sub, mul_assoc]
state_before: p : ℕ
R : Type u_1
S : Type u_2
hp : Fact (Nat.Prime p)
inst✝¹ : CommRing R
inst✝ : CommRing S
x : 𝕎 R
n i : ℕ
⊢ ↑p ^ (i + 1) * x.verschiebungFun.coeff (i + 1) ^ p ^ (n + 1 - (i + 1)) = ↑p * (↑p ^ i * x.coeff i ^ p ^ (n - i))
state_after: no goals
Theorem: LinearMap.polyCharpolyAux_eval_eq_toMatrix_charpoly_coeff
File: Mathlib/Algebra/Module/LinearMap/Polynomial.lean

tactic: simp [← polyCharpolyAux_map_eq_toMatrix_charpoly φ b bₘ x]
state_before: R : Type u_1
L : Type u_2
M : Type u_3
n : Type u_4
ι : Type u_5
ι' : Type u_6
ιM : Type u_7
inst✝¹⁰ : CommRing R
inst✝⁹ : AddCommGroup L
inst✝⁸ : Module R L
inst✝⁷ : AddCommGroup M
inst✝⁶ : Module R M
φ : L →ₗ[R] Module.End R M
inst✝⁵ : Fintype ι
inst✝⁴ : Fintype ι'
inst✝³ : Fintype ιM
inst✝² : DecidableEq ι
inst✝¹ : DecidableEq ι'
inst✝ : DecidableEq ιM
b : Basis ι R L
bₘ : Basis ιM R M
x : L
i : ℕ
⊢ (MvPolynomial.eval ⇑(b.repr x)) ((φ.polyCharpolyAux b bₘ).coeff i) = ((toMatrix bₘ bₘ) (φ x)).charpoly.coeff i
state_after: no goals
Theorem: Real.ball_eq_Ioo
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: rw [mem_ball, dist_comm, Real.dist_eq, abs_sub_lt_iff, mem_Ioo, ← sub_lt_iff_lt_add',
  sub_lt_comm]
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x r y : ℝ
⊢ y ∈ ball x r ↔ y ∈ Ioo (x - r) (x + r)
state_after: no goals
Theorem: SimpleGraph.Subgraph.finset_card_neighborSet_eq_degree
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: rw [degree, Set.toFinset_card]
state_before: ι : Sort u_1
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : G.Subgraph
a b : V
G' : G.Subgraph
v : V
inst✝ : Fintype ↑(G'.neighborSet v)
⊢ (G'.neighborSet v).toFinset.card = G'.degree v
state_after: no goals
Theorem: PMF.mem_support_seq_iff
File: Mathlib/Probability/ProbabilityMassFunction/Constructions.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
q : PMF (α → β)
p : PMF α
b : β
⊢ b ∈ (q.seq p).support ↔ ∃ f ∈ q.support, b ∈ f '' p.support
state_after: no goals
Theorem: Filter.frequently_false
File: Mathlib/Order/Filter/Basic.lean

tactic: simp
state_before: α : Type u
β : Type v
γ : Type w
δ : Type u_1
ι : Sort x
f : Filter α
⊢ ¬∃ᶠ (x : α) in f, False
state_after: no goals
Theorem: Con.conGen_le
File: Mathlib/GroupTheory/Congruence/Basic.lean

tactic: rw [conGen_eq]
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c✝ : Con M
r : M → M → Prop
c : Con M
h : ∀ (x y : M), r x y → c x y
⊢ conGen r ≤ c
state_after: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c✝ : Con M
r : M → M → Prop
c : Con M
h : ∀ (x y : M), r x y → c x y
⊢ sInf {s | ∀ (x y : M), r x y → s x y} ≤ c

tactic: exact sInf_le h
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝² : Mul M
inst✝¹ : Mul N
inst✝ : Mul P
c✝ : Con M
r : M → M → Prop
c : Con M
h : ∀ (x y : M), r x y → c x y
⊢ sInf {s | ∀ (x y : M), r x y → s x y} ≤ c
state_after: no goals
Theorem: MeasureTheory.average_congr
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: simp only [average_eq, integral_congr_ae h]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ ν : Measure α
s t : Set α
f✝ g✝ f g : α → E
h : f =ᶠ[ae μ] g
⊢ ⨍ (x : α), f x ∂μ = ⨍ (x : α), g x ∂μ
state_after: no goals
Theorem: compl_compl_himp_distrib
File: Mathlib/Order/Heyting/Basic.lean

tactic: apply le_antisymm
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ (a ⇨ b)ᶜᶜ = aᶜᶜ ⇨ bᶜᶜ
state_after: case a
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ (a ⇨ b)ᶜᶜ ≤ aᶜᶜ ⇨ bᶜᶜ

case a
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ aᶜᶜ ⇨ bᶜᶜ ≤ (a ⇨ b)ᶜᶜ

tactic: rw [le_himp_iff, ← compl_compl_inf_distrib]
state_before: case a
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ (a ⇨ b)ᶜᶜ ≤ aᶜᶜ ⇨ bᶜᶜ
state_after: case a
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ ((a ⇨ b) ⊓ a)ᶜᶜ ≤ bᶜᶜ

tactic: exact compl_anti (compl_anti himp_inf_le)
state_before: case a
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ ((a ⇨ b) ⊓ a)ᶜᶜ ≤ bᶜᶜ
state_after: no goals

tactic: refine le_compl_comm.1 ((compl_anti compl_sup_le_himp).trans ?_)
state_before: case a
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ aᶜᶜ ⇨ bᶜᶜ ≤ (a ⇨ b)ᶜᶜ
state_after: case a
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ (aᶜ ⊔ b)ᶜ ≤ (aᶜᶜ ⇨ bᶜᶜ)ᶜ

tactic: rw [compl_sup_distrib, le_compl_iff_disjoint_right, disjoint_right_comm, ←
  le_compl_iff_disjoint_right]
state_before: case a
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ (aᶜ ⊔ b)ᶜ ≤ (aᶜᶜ ⇨ bᶜᶜ)ᶜ
state_after: case a
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ aᶜᶜ ⊓ (aᶜᶜ ⇨ bᶜᶜ) ≤ bᶜᶜ

tactic: exact inf_himp_le
state_before: case a
ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : HeytingAlgebra α
a✝ b✝ c a b : α
⊢ aᶜᶜ ⊓ (aᶜᶜ ⇨ bᶜᶜ) ≤ bᶜᶜ
state_after: no goals
Theorem: CategoryTheory.Biprod.isIso_inl_iff_isZero
File: Mathlib/CategoryTheory/Simple.lean

tactic: rw [biprod.isIso_inl_iff_id_eq_fst_comp_inl, ← biprod.total, add_right_eq_self]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
⊢ IsIso biprod.inl ↔ IsZero Y
state_after: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
⊢ biprod.snd ≫ biprod.inr = 0 ↔ IsZero Y

tactic: constructor
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
⊢ biprod.snd ≫ biprod.inr = 0 ↔ IsZero Y
state_after: case mp
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
⊢ biprod.snd ≫ biprod.inr = 0 → IsZero Y

case mpr
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
⊢ IsZero Y → biprod.snd ≫ biprod.inr = 0

tactic: intro h
state_before: case mp
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
⊢ biprod.snd ≫ biprod.inr = 0 → IsZero Y
state_after: case mp
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
h : biprod.snd ≫ biprod.inr = 0
⊢ IsZero Y

tactic: replace h := h =≫ biprod.snd
state_before: case mp
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
h : biprod.snd ≫ biprod.inr = 0
⊢ IsZero Y
state_after: case mp
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
h : (biprod.snd ≫ biprod.inr) ≫ biprod.snd = 0 ≫ biprod.snd
⊢ IsZero Y

tactic: simpa [← IsZero.iff_isSplitEpi_eq_zero (biprod.snd : X ⊞ Y ⟶ Y)] using h
state_before: case mp
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
h : (biprod.snd ≫ biprod.inr) ≫ biprod.snd = 0 ≫ biprod.snd
⊢ IsZero Y
state_after: no goals

tactic: intro h
state_before: case mpr
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
⊢ IsZero Y → biprod.snd ≫ biprod.inr = 0
state_after: case mpr
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
h : IsZero Y
⊢ biprod.snd ≫ biprod.inr = 0

tactic: rw [IsZero.iff_isSplitEpi_eq_zero (biprod.snd : X ⊞ Y ⟶ Y)] at h
state_before: case mpr
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
h : IsZero Y
⊢ biprod.snd ≫ biprod.inr = 0
state_after: case mpr
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
h : biprod.snd = 0
⊢ biprod.snd ≫ biprod.inr = 0

tactic: rw [h, zero_comp]
state_before: case mpr
C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : Preadditive C
inst✝ : HasBinaryBiproducts C
X Y : C
h : biprod.snd = 0
⊢ biprod.snd ≫ biprod.inr = 0
state_after: no goals
Theorem: PadicInt.modPart_lt_p
File: Mathlib/NumberTheory/Padics/RingHoms.lean

tactic: convert Int.emod_lt _ _
state_before: p : ℕ
hp_prime : Fact (Nat.Prime p)
r : ℚ
⊢ modPart p r < ↑p
state_after: case h.e'_4
p : ℕ
hp_prime : Fact (Nat.Prime p)
r : ℚ
⊢ ↑p = |↑p|

case convert_3
p : ℕ
hp_prime : Fact (Nat.Prime p)
r : ℚ
⊢ ↑p ≠ 0

tactic: simp
state_before: case h.e'_4
p : ℕ
hp_prime : Fact (Nat.Prime p)
r : ℚ
⊢ ↑p = |↑p|
state_after: no goals

tactic: exact mod_cast hp_prime.1.ne_zero
state_before: case convert_3
p : ℕ
hp_prime : Fact (Nat.Prime p)
r : ℚ
⊢ ↑p ≠ 0
state_after: no goals
Theorem: MvPolynomial.pderiv_X
File: Mathlib/Algebra/MvPolynomial/PDeriv.lean

tactic: rw [pderiv_def, mkDerivation_X]
state_before: R : Type u
σ : Type v
a a' a₁ a₂ : R
s : σ →₀ ℕ
inst✝¹ : CommSemiring R
inst✝ : DecidableEq σ
i j : σ
⊢ (pderiv i) (X j) = Pi.single i 1 j
state_after: no goals
Theorem: FirstOrder.Language.Theory.IsComplete.realize_sentence_iff
File: Mathlib/ModelTheory/Satisfiability.lean

tactic: cases' h.2 φ with hφ hφn
state_before: L : Language
T : L.Theory
α : Type w
n : ℕ
h : T.IsComplete
φ : L.Sentence
M : Type u_1
inst✝² : L.Structure M
inst✝¹ : M ⊨ T
inst✝ : Nonempty M
⊢ M ⊨ φ ↔ T ⊨ᵇ φ
state_after: case inl
L : Language
T : L.Theory
α : Type w
n : ℕ
h : T.IsComplete
φ : L.Sentence
M : Type u_1
inst✝² : L.Structure M
inst✝¹ : M ⊨ T
inst✝ : Nonempty M
hφ : T ⊨ᵇ φ
⊢ M ⊨ φ ↔ T ⊨ᵇ φ

case inr
L : Language
T : L.Theory
α : Type w
n : ℕ
h : T.IsComplete
φ : L.Sentence
M : Type u_1
inst✝² : L.Structure M
inst✝¹ : M ⊨ T
inst✝ : Nonempty M
hφn : T ⊨ᵇ Formula.not φ
⊢ M ⊨ φ ↔ T ⊨ᵇ φ

tactic: exact iff_of_true (hφ.realize_sentence M) hφ
state_before: case inl
L : Language
T : L.Theory
α : Type w
n : ℕ
h : T.IsComplete
φ : L.Sentence
M : Type u_1
inst✝² : L.Structure M
inst✝¹ : M ⊨ T
inst✝ : Nonempty M
hφ : T ⊨ᵇ φ
⊢ M ⊨ φ ↔ T ⊨ᵇ φ
state_after: no goals

tactic: exact
  iff_of_false ((Sentence.realize_not M).1 (hφn.realize_sentence M))
    ((h.models_not_iff φ).1 hφn)
state_before: case inr
L : Language
T : L.Theory
α : Type w
n : ℕ
h : T.IsComplete
φ : L.Sentence
M : Type u_1
inst✝² : L.Structure M
inst✝¹ : M ⊨ T
inst✝ : Nonempty M
hφn : T ⊨ᵇ Formula.not φ
⊢ M ⊨ φ ↔ T ⊨ᵇ φ
state_after: no goals