1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Finset.image_ssubset_image
File: Mathlib/Data/Finset/Image.lean

tactic: simp_rw [← lt_iff_ssubset]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq β
f g : α → β
s : Finset α
t✝ : Finset β
a : α
b c : β
t : Finset α
hf : Injective f
⊢ image f s ⊂ image f t ↔ s ⊂ t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq β
f g : α → β
s : Finset α
t✝ : Finset β
a : α
b c : β
t : Finset α
hf : Injective f
⊢ image f s < image f t ↔ s < t

tactic: exact lt_iff_lt_of_le_iff_le' (image_subset_image_iff hf) (image_subset_image_iff hf)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝ : DecidableEq β
f g : α → β
s : Finset α
t✝ : Finset β
a : α
b c : β
t : Finset α
hf : Injective f
⊢ image f s < image f t ↔ s < t
state_after: no goals
Theorem: RCLike.norm_I_of_ne_zero
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: rw [← mul_self_inj_of_nonneg (norm_nonneg I) zero_le_one, one_mul, ← norm_mul,
  I_mul_I_of_nonzero hI, norm_neg, norm_one]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z : K
hI : I ≠ 0
⊢ ‖I‖ = 1
state_after: no goals
Theorem: FormalMultilinearSeries.order_eq_find
File: Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean

tactic: convert Nat.sInf_def hp
state_before: 𝕜 : Type u
𝕜' : Type u'
E : Type v
F : Type w
G : Type x
inst✝¹¹ : Ring 𝕜
n : ℕ
inst✝¹⁰ : AddCommGroup E
inst✝⁹ : Module 𝕜 E
inst✝⁸ : TopologicalSpace E
inst✝⁷ : TopologicalAddGroup E
inst✝⁶ : ContinuousConstSMul 𝕜 E
inst✝⁵ : AddCommGroup F
inst✝⁴ : Module 𝕜 F
inst✝³ : TopologicalSpace F
inst✝² : TopologicalAddGroup F
inst✝¹ : ContinuousConstSMul 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
inst✝ : DecidablePred fun n => p n ≠ 0
hp : ∃ n, p n ≠ 0
⊢ p.order = Nat.find hp
state_after: no goals
Theorem: List.length_pos_of_prod_ne_one
File: Mathlib/Algebra/BigOperators/Group/List.lean

tactic: cases L
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝² : Monoid M
inst✝¹ : Monoid N
inst✝ : Monoid P
l l₁ l₂ : List M
a : M
L : List M
h : L.prod ≠ 1
⊢ 0 < L.length
state_after: case nil
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝² : Monoid M
inst✝¹ : Monoid N
inst✝ : Monoid P
l l₁ l₂ : List M
a : M
h : [].prod ≠ 1
⊢ 0 < [].length

case cons
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝² : Monoid M
inst✝¹ : Monoid N
inst✝ : Monoid P
l l₁ l₂ : List M
a head✝ : M
tail✝ : List M
h : (head✝ :: tail✝).prod ≠ 1
⊢ 0 < (head✝ :: tail✝).length

tactic: simp at h
state_before: case nil
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝² : Monoid M
inst✝¹ : Monoid N
inst✝ : Monoid P
l l₁ l₂ : List M
a : M
h : [].prod ≠ 1
⊢ 0 < [].length
state_after: no goals

tactic: simp
state_before: case cons
ι : Type u_1
α : Type u_2
β : Type u_3
M : Type u_4
N : Type u_5
P : Type u_6
G : Type u_7
inst✝² : Monoid M
inst✝¹ : Monoid N
inst✝ : Monoid P
l l₁ l₂ : List M
a head✝ : M
tail✝ : List M
h : (head✝ :: tail✝).prod ≠ 1
⊢ 0 < (head✝ :: tail✝).length
state_after: no goals
Theorem: Nat.ceil_add_one
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [cast_one.symm, ceil_add_nat ha 1]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a : α
n : ℕ
ha : 0 ≤ a
⊢ ⌈a + 1⌉₊ = ⌈a⌉₊ + 1
state_after: no goals
Theorem: ConvexOn.slope_le_of_hasDerivWithinAt
File: Mathlib/Analysis/Convex/Deriv.lean

tactic: refine hfc.slope_le_of_hasDerivWithinAt_Iio hx hy hxy (hf'.mono_of_mem ?_)
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' S y
⊢ slope f x y ≤ f'
state_after: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' S y
⊢ S ∈ 𝓝[<] y

tactic: rw [mem_nhdsWithin_Iio_iff_exists_Ico_subset]
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' S y
⊢ S ∈ 𝓝[<] y
state_after: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' S y
⊢ ∃ l ∈ Iio y, Ico l y ⊆ S

tactic: exact ⟨x, hxy, Ico_subset_Icc_self.trans (hfc.1.ordConnected.out hx hy)⟩
state_before: S : Set ℝ
f : ℝ → ℝ
x y f' : ℝ
hfc : ConvexOn ℝ S f
hx : x ∈ S
hy : y ∈ S
hxy : x < y
hf' : HasDerivWithinAt f f' S y
⊢ ∃ l ∈ Iio y, Ico l y ⊆ S
state_after: no goals
Theorem: SetTheory.PGame.le_zero_lf
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [le_iff_forall_lf]
state_before: xl xr : Type u
x : PGame
⊢ x ≤ 0 ↔ ∀ (i : x.LeftMoves), x.moveLeft i ⧏ 0
state_after: xl xr : Type u
x : PGame
⊢ ((∀ (i : x.LeftMoves), x.moveLeft i ⧏ 0) ∧ ∀ (j : RightMoves 0), x ⧏ moveRight 0 j) ↔
    ∀ (i : x.LeftMoves), x.moveLeft i ⧏ 0

tactic: simp
state_before: xl xr : Type u
x : PGame
⊢ ((∀ (i : x.LeftMoves), x.moveLeft i ⧏ 0) ∧ ∀ (j : RightMoves 0), x ⧏ moveRight 0 j) ↔
    ∀ (i : x.LeftMoves), x.moveLeft i ⧏ 0
state_after: no goals
Theorem: MeasureTheory.OuterMeasure.sInf_apply'
File: Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean

tactic: simp [hm, h]
state_before: α : Type u_1
m : Set (OuterMeasure α)
s : Set α
h : s.Nonempty
hm : m = ∅
⊢ (sInf m) s = ⨅ t, ⨅ (_ : s ⊆ iUnion t), ∑' (n : ℕ), ⨅ μ ∈ m, μ (t n)
state_after: no goals
Theorem: AffineMap.image_convexHull
File: Mathlib/Analysis/Convex/Hull.lean

tactic: apply Set.Subset.antisymm
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ ⇑f '' (convexHull 𝕜) s = (convexHull 𝕜) (⇑f '' s)
state_after: case h₁
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ ⇑f '' (convexHull 𝕜) s ⊆ (convexHull 𝕜) (⇑f '' s)

case h₂
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ (convexHull 𝕜) (⇑f '' s) ⊆ ⇑f '' (convexHull 𝕜) s

tactic: rw [Set.image_subset_iff]
state_before: case h₁
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ ⇑f '' (convexHull 𝕜) s ⊆ (convexHull 𝕜) (⇑f '' s)
state_after: case h₁
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ (convexHull 𝕜) s ⊆ ⇑f ⁻¹' (convexHull 𝕜) (⇑f '' s)

tactic: refine convexHull_min ?_ ((convex_convexHull 𝕜 (f '' s)).affine_preimage f)
state_before: case h₁
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ (convexHull 𝕜) s ⊆ ⇑f ⁻¹' (convexHull 𝕜) (⇑f '' s)
state_after: case h₁
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ s ⊆ ⇑f ⁻¹' (convexHull 𝕜) (⇑f '' s)

tactic: rw [← Set.image_subset_iff]
state_before: case h₁
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ s ⊆ ⇑f ⁻¹' (convexHull 𝕜) (⇑f '' s)
state_after: case h₁
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ ⇑f '' s ⊆ (convexHull 𝕜) (⇑f '' s)

tactic: exact subset_convexHull 𝕜 (f '' s)
state_before: case h₁
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ ⇑f '' s ⊆ (convexHull 𝕜) (⇑f '' s)
state_after: no goals

tactic: exact convexHull_min (Set.image_subset _ (subset_convexHull 𝕜 s))
  ((convex_convexHull 𝕜 s).affine_image f)
state_before: case h₂
𝕜 : Type u_1
E : Type u_2
F : Type u_3
inst✝⁴ : OrderedRing 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
f : E →ᵃ[𝕜] F
s : Set E
⊢ (convexHull 𝕜) (⇑f '' s) ⊆ ⇑f '' (convexHull 𝕜) s
state_after: no goals
Theorem: Set.Iio_inter_Ioo
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: rw [Set.inter_comm, Set.Ioo_inter_Iio, min_comm]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : LinearOrder β
f : α → β
a a₁ a₂ b b₁ b₂ c d : α
⊢ Iio a ∩ Ioo b c = Ioo b (min a c)
state_after: no goals
Theorem: MeasureTheory.integral_eq_zero_of_mul_right_eq_neg
File: Mathlib/MeasureTheory/Group/Integral.lean

tactic: simp_rw [← self_eq_neg ℝ E, ← integral_neg, ← hf', integral_mul_right_eq_self]
state_before: 𝕜 : Type u_1
M : Type u_2
α : Type u_3
G : Type u_4
E : Type u_5
F : Type u_6
inst✝⁷ : MeasurableSpace G
inst✝⁶ : NormedAddCommGroup E
inst✝⁵ : NormedSpace ℝ E
inst✝⁴ : CompleteSpace E
inst✝³ : NormedAddCommGroup F
μ : Measure G
f : G → E
g : G
inst✝² : Group G
inst✝¹ : MeasurableMul G
inst✝ : μ.IsMulRightInvariant
hf' : ∀ (x : G), f (x * g) = -f x
⊢ ∫ (x : G), f x ∂μ = 0
state_after: no goals
Theorem: Stream'.Seq.head_eq_destruct
File: Mathlib/Data/Seq/Seq.lean

tactic: unfold destruct head
state_before: α : Type u
β : Type v
γ : Type w
s : Seq α
⊢ s.head = Prod.fst <$> s.destruct
state_after: α : Type u
β : Type v
γ : Type w
s : Seq α
⊢ s.get? 0 = Prod.fst <$> (fun a' => (a', s.tail)) <$> s.get? 0

tactic: cases get? s 0 <;> rfl
state_before: α : Type u
β : Type v
γ : Type w
s : Seq α
⊢ s.get? 0 = Prod.fst <$> (fun a' => (a', s.tail)) <$> s.get? 0
state_after: no goals
Theorem: LinearMap.tailing_disjoint_tunnel_succ
File: Mathlib/LinearAlgebra/Prod.lean

tactic: rw [disjoint_iff]
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
inst✝⁴ : Ring R
N : Type u_3
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
f : M × N →ₗ[R] M
i : Injective ⇑f
n : ℕ
⊢ Disjoint (f.tailing i n) (OrderDual.ofDual ((f.tunnel i) (n + 1)))
state_after: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
inst✝⁴ : Ring R
N : Type u_3
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
f : M × N →ₗ[R] M
i : Injective ⇑f
n : ℕ
⊢ f.tailing i n ⊓ OrderDual.ofDual ((f.tunnel i) (n + 1)) = ⊥

tactic: dsimp [tailing, tunnel, tunnel']
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
inst✝⁴ : Ring R
N : Type u_3
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
f : M × N →ₗ[R] M
i : Injective ⇑f
n : ℕ
⊢ f.tailing i n ⊓ OrderDual.ofDual ((f.tunnel i) (n + 1)) = ⊥
state_after: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
inst✝⁴ : Ring R
N : Type u_3
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
f : M × N →ₗ[R] M
i : Injective ⇑f
n : ℕ
⊢ Submodule.map (f.tunnelAux (f.tunnel' i n)) (Submodule.snd R M N) ⊓
      Submodule.map (f.tunnelAux (f.tunnel' i n)) (Submodule.fst R M N) =
    ⊥

tactic: erw [Submodule.map_inf_eq_map_inf_comap,
  Submodule.comap_map_eq_of_injective (tunnelAux_injective _ i _), inf_comm,
  Submodule.fst_inf_snd, Submodule.map_bot]
state_before: R : Type u
K : Type u'
M : Type v
V : Type v'
M₂ : Type w
V₂ : Type w'
M₃ : Type y
V₃ : Type y'
M₄ : Type z
ι : Type x
M₅ : Type u_1
M₆ : Type u_2
inst✝⁴ : Ring R
N : Type u_3
inst✝³ : AddCommGroup M
inst✝² : Module R M
inst✝¹ : AddCommGroup N
inst✝ : Module R N
f : M × N →ₗ[R] M
i : Injective ⇑f
n : ℕ
⊢ Submodule.map (f.tunnelAux (f.tunnel' i n)) (Submodule.snd R M N) ⊓
      Submodule.map (f.tunnelAux (f.tunnel' i n)) (Submodule.fst R M N) =
    ⊥
state_after: no goals
Theorem: LinearMap.flip_inj
File: Mathlib/LinearAlgebra/BilinearMap.lean

tactic: rw [H]
state_before: R : Type u_1
inst✝³² : Semiring R
S : Type u_2
inst✝³¹ : Semiring S
R₂ : Type u_3
inst✝³⁰ : Semiring R₂
S₂ : Type u_4
inst✝²⁹ : Semiring S₂
M : Type u_5
N : Type u_6
P : Type u_7
M₂ : Type u_8
N₂ : Type u_9
P₂ : Type u_10
Nₗ : Type u_11
Pₗ : Type u_12
M' : Type u_13
N' : Type u_14
P' : Type u_15
inst✝²⁸ : AddCommMonoid M
inst✝²⁷ : AddCommMonoid N
inst✝²⁶ : AddCommMonoid P
inst✝²⁵ : AddCommMonoid M₂
inst✝²⁴ : AddCommMonoid N₂
inst✝²³ : AddCommMonoid P₂
inst✝²² : AddCommMonoid Nₗ
inst✝²¹ : AddCommMonoid Pₗ
inst✝²⁰ : AddCommGroup M'
inst✝¹⁹ : AddCommGroup N'
inst✝¹⁸ : AddCommGroup P'
inst✝¹⁷ : Module R M
inst✝¹⁶ : Module S N
inst✝¹⁵ : Module R₂ P
inst✝¹⁴ : Module S₂ P
inst✝¹³ : Module R M₂
inst✝¹² : Module S N₂
inst✝¹¹ : Module R P₂
inst✝¹⁰ : Module S₂ P₂
inst✝⁹ : Module R Pₗ
inst✝⁸ : Module S Pₗ
inst✝⁷ : Module R M'
inst✝⁶ : Module S N'
inst✝⁵ : Module R₂ P'
inst✝⁴ : Module S₂ P'
inst✝³ : SMulCommClass S₂ R₂ P
inst✝² : SMulCommClass S R Pₗ
inst✝¹ : SMulCommClass S₂ R₂ P'
inst✝ : SMulCommClass S₂ R P₂
ρ₁₂ : R →+* R₂
σ₁₂ : S →+* S₂
f g : M →ₛₗ[ρ₁₂] N →ₛₗ[σ₁₂] P
H : f.flip = g.flip
m : M
n : N
⊢ (f.flip n) m = (g.flip n) m
state_after: no goals
Theorem: Finset.prod_to_list
File: Mathlib/Algebra/BigOperators/Group/Finset.lean

tactic: rw [Finset.prod, ← Multiset.prod_coe, ← Multiset.map_coe, Finset.coe_toList]
state_before: ι : Type u_1
κ : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝ : CommMonoid β
s : Finset α
f : α → β
⊢ (List.map f s.toList).prod = s.prod f
state_after: no goals
Theorem: ExistsContDiffBumpBase.w_support
File: Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean

tactic: have B : D • ball (0 : E) 1 = ball 0 D := by
  rw [smul_unitBall Dpos.ne', Real.norm_of_nonneg Dpos.le]
state_before: E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
D : ℝ
Dpos : 0 < D
⊢ support (w D) = ball 0 D
state_after: E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
D : ℝ
Dpos : 0 < D
B : D • ball 0 1 = ball 0 D
⊢ support (w D) = ball 0 D

tactic: have C : D ^ finrank ℝ E ≠ 0 := by
  norm_cast
  exact pow_ne_zero _ Dpos.ne'
state_before: E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
D : ℝ
Dpos : 0 < D
B : D • ball 0 1 = ball 0 D
⊢ support (w D) = ball 0 D
state_after: E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
D : ℝ
Dpos : 0 < D
B : D • ball 0 1 = ball 0 D
C : D ^ finrank ℝ E ≠ 0
⊢ support (w D) = ball 0 D

tactic: simp only [w_def, Algebra.id.smul_eq_mul, support_mul, support_inv, univ_inter,
  support_comp_inv_smul₀ Dpos.ne', u_support, B, support_const (u_int_pos E).ne', support_const C,
  abs_of_nonneg Dpos.le]
state_before: E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
D : ℝ
Dpos : 0 < D
B : D • ball 0 1 = ball 0 D
C : D ^ finrank ℝ E ≠ 0
⊢ support (w D) = ball 0 D
state_after: no goals

tactic: rw [smul_unitBall Dpos.ne', Real.norm_of_nonneg Dpos.le]
state_before: E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
D : ℝ
Dpos : 0 < D
⊢ D • ball 0 1 = ball 0 D
state_after: no goals

tactic: norm_cast
state_before: E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
D : ℝ
Dpos : 0 < D
B : D • ball 0 1 = ball 0 D
⊢ D ^ finrank ℝ E ≠ 0
state_after: E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
D : ℝ
Dpos : 0 < D
B : D • ball 0 1 = ball 0 D
⊢ ¬D ^ finrank ℝ E = 0

tactic: exact pow_ne_zero _ Dpos.ne'
state_before: E : Type u_1
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace ℝ E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : MeasurableSpace E
inst✝ : BorelSpace E
D : ℝ
Dpos : 0 < D
B : D • ball 0 1 = ball 0 D
⊢ ¬D ^ finrank ℝ E = 0
state_after: no goals
Theorem: Multiset.noncommFoldr_eq_foldr
File: Mathlib/Data/Finset/NoncommProd.lean

tactic: induction s using Quotient.inductionOn
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
s : Multiset α
h : LeftCommutative f
b : β
⊢ noncommFoldr f s ⋯ b = foldr f h b s
state_after: case h
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
h : LeftCommutative f
b : β
a✝ : List α
⊢ noncommFoldr f ⟦a✝⟧ ⋯ b = foldr f h b ⟦a✝⟧

tactic: simp
state_before: case h
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
h : LeftCommutative f
b : β
a✝ : List α
⊢ noncommFoldr f ⟦a✝⟧ ⋯ b = foldr f h b ⟦a✝⟧
state_after: no goals
Theorem: List.permutationsAux_nil
File: Mathlib/Data/List/Permutation.lean

tactic: rw [permutationsAux, permutationsAux.rec]
state_before: α : Type u_1
β : Type u_2
is : List α
⊢ [].permutationsAux is = []
state_after: no goals
Theorem: Real.hasPDF_iff
File: Mathlib/Probability/Density.lean

tactic: by_cases hX : AEMeasurable X ℙ
state_before: Ω : Type u_1
E : Type u_2
inst✝¹ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
inst✝ : IsFiniteMeasure ℙ
X : Ω → ℝ
⊢ HasPDF X ℙ volume ↔ AEMeasurable X ℙ ∧ map X ℙ ≪ volume
state_after: case pos
Ω : Type u_1
E : Type u_2
inst✝¹ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
inst✝ : IsFiniteMeasure ℙ
X : Ω → ℝ
hX : AEMeasurable X ℙ
⊢ HasPDF X ℙ volume ↔ AEMeasurable X ℙ ∧ map X ℙ ≪ volume

case neg
Ω : Type u_1
E : Type u_2
inst✝¹ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
inst✝ : IsFiniteMeasure ℙ
X : Ω → ℝ
hX : ¬AEMeasurable X ℙ
⊢ HasPDF X ℙ volume ↔ AEMeasurable X ℙ ∧ map X ℙ ≪ volume

tactic: rw [Real.hasPDF_iff_of_aemeasurable hX, iff_and_self]
state_before: case pos
Ω : Type u_1
E : Type u_2
inst✝¹ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
inst✝ : IsFiniteMeasure ℙ
X : Ω → ℝ
hX : AEMeasurable X ℙ
⊢ HasPDF X ℙ volume ↔ AEMeasurable X ℙ ∧ map X ℙ ≪ volume
state_after: case pos
Ω : Type u_1
E : Type u_2
inst✝¹ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
inst✝ : IsFiniteMeasure ℙ
X : Ω → ℝ
hX : AEMeasurable X ℙ
⊢ map X ℙ ≪ volume → AEMeasurable X ℙ

tactic: exact fun _ => hX
state_before: case pos
Ω : Type u_1
E : Type u_2
inst✝¹ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
inst✝ : IsFiniteMeasure ℙ
X : Ω → ℝ
hX : AEMeasurable X ℙ
⊢ map X ℙ ≪ volume → AEMeasurable X ℙ
state_after: no goals

tactic: exact ⟨fun h => False.elim (hX h.pdf'.1), fun h => False.elim (hX h.1)⟩
state_before: case neg
Ω : Type u_1
E : Type u_2
inst✝¹ : MeasurableSpace E
m : MeasurableSpace Ω
ℙ : Measure Ω
μ : Measure E
inst✝ : IsFiniteMeasure ℙ
X : Ω → ℝ
hX : ¬AEMeasurable X ℙ
⊢ HasPDF X ℙ volume ↔ AEMeasurable X ℙ ∧ map X ℙ ≪ volume
state_after: no goals
Theorem: Grp.SurjectiveOfEpiAuxs.fromCoset_ne_of_nin_range
File: Mathlib/Algebra/Category/Grp/EpiMono.lean

tactic: intro r
state_before: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
⊢ fromCoset ⟨b • ↑(MonoidHom.range f), ⋯⟩ ≠ fromCoset ⟨↑(MonoidHom.range f), ⋯⟩
state_after: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
r : fromCoset ⟨b • ↑(MonoidHom.range f), ⋯⟩ = fromCoset ⟨↑(MonoidHom.range f), ⋯⟩
⊢ False

tactic: simp only [fromCoset.injEq, Subtype.mk.injEq] at r
state_before: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
r : fromCoset ⟨b • ↑(MonoidHom.range f), ⋯⟩ = fromCoset ⟨↑(MonoidHom.range f), ⋯⟩
⊢ False
state_after: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
r : b • ↑(MonoidHom.range f) = ↑(MonoidHom.range f)
⊢ False

tactic: let b' : B.α := b
state_before: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
r : b • ↑(MonoidHom.range f) = ↑(MonoidHom.range f)
⊢ False
state_after: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
r : b • ↑(MonoidHom.range f) = ↑(MonoidHom.range f)
b' : ↑B := b
⊢ False

tactic: change b' • (f.range : Set B) = f.range at r
state_before: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
r : b • ↑(MonoidHom.range f) = ↑(MonoidHom.range f)
b' : ↑B := b
⊢ False
state_after: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
b' : ↑B := b
r : b' • ↑(MonoidHom.range f) = ↑(MonoidHom.range f)
⊢ False

tactic: nth_rw 2 [show (f.range : Set B.α) = (1 : B) • f.range from (one_leftCoset _).symm] at r
state_before: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
b' : ↑B := b
r : b' • ↑(MonoidHom.range f) = ↑(MonoidHom.range f)
⊢ False
state_after: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
b' : ↑B := b
r : b' • ↑(MonoidHom.range f) = 1 • ↑(MonoidHom.range f)
⊢ False

tactic: rw [leftCoset_eq_iff, mul_one] at r
state_before: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
b' : ↑B := b
r : b' • ↑(MonoidHom.range f) = 1 • ↑(MonoidHom.range f)
⊢ False
state_after: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
b' : ↑B := b
r : b'⁻¹ ∈ MonoidHom.range f
⊢ False

tactic: exact hb (inv_inv b ▸ Subgroup.inv_mem _ r)
state_before: A B : Grp
f : A ⟶ B
b : ↑B
hb : b ∉ MonoidHom.range f
b' : ↑B := b
r : b'⁻¹ ∈ MonoidHom.range f
⊢ False
state_after: no goals
Theorem: UniformSpace.ext_iff
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: ext
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
u₁ u₂ : UniformSpace α
h : ∀ (s : Set (α × α)), s ∈ 𝓤 α ↔ s ∈ 𝓤 α
⊢ u₁ = u₂
state_after: case h.a
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
u₁ u₂ : UniformSpace α
h : ∀ (s : Set (α × α)), s ∈ 𝓤 α ↔ s ∈ 𝓤 α
s✝ : Set (α × α)
⊢ s✝ ∈ 𝓤 α ↔ s✝ ∈ 𝓤 α

tactic: exact h _
state_before: case h.a
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
u₁ u₂ : UniformSpace α
h : ∀ (s : Set (α × α)), s ∈ 𝓤 α ↔ s ∈ 𝓤 α
s✝ : Set (α × α)
⊢ s✝ ∈ 𝓤 α ↔ s✝ ∈ 𝓤 α
state_after: no goals