1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Rat.num_eq_zero
File: Mathlib/Data/Rat/Defs.lean

tactic: induction q
state_before: q✝ q : ℚ
⊢ q.num = 0 ↔ q = 0
state_after: case mk'
q : ℚ
num✝ : ℤ
den✝ : ℕ
den_nz✝ : den✝ ≠ 0
reduced✝ : num✝.natAbs.Coprime den✝
⊢ { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }.num = 0 ↔
    { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ } = 0

tactic: constructor
state_before: case mk'
q : ℚ
num✝ : ℤ
den✝ : ℕ
den_nz✝ : den✝ ≠ 0
reduced✝ : num✝.natAbs.Coprime den✝
⊢ { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }.num = 0 ↔
    { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ } = 0
state_after: case mk'.mp
q : ℚ
num✝ : ℤ
den✝ : ℕ
den_nz✝ : den✝ ≠ 0
reduced✝ : num✝.natAbs.Coprime den✝
⊢ { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }.num = 0 →
    { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ } = 0

case mk'.mpr
q : ℚ
num✝ : ℤ
den✝ : ℕ
den_nz✝ : den✝ ≠ 0
reduced✝ : num✝.natAbs.Coprime den✝
⊢ { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ } = 0 →
    { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }.num = 0

tactic: rintro rfl
state_before: case mk'.mp
q : ℚ
num✝ : ℤ
den✝ : ℕ
den_nz✝ : den✝ ≠ 0
reduced✝ : num✝.natAbs.Coprime den✝
⊢ { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }.num = 0 →
    { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ } = 0
state_after: case mk'.mp
q : ℚ
den✝ : ℕ
den_nz✝ : den✝ ≠ 0
reduced✝ : (Int.natAbs 0).Coprime den✝
⊢ { num := 0, den := den✝, den_nz := den_nz✝, reduced := reduced✝ } = 0

tactic: exact mk'_zero _ _ _
state_before: case mk'.mp
q : ℚ
den✝ : ℕ
den_nz✝ : den✝ ≠ 0
reduced✝ : (Int.natAbs 0).Coprime den✝
⊢ { num := 0, den := den✝, den_nz := den_nz✝, reduced := reduced✝ } = 0
state_after: no goals

tactic: exact congr_arg num
state_before: case mk'.mpr
q : ℚ
num✝ : ℤ
den✝ : ℕ
den_nz✝ : den✝ ≠ 0
reduced✝ : num✝.natAbs.Coprime den✝
⊢ { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ } = 0 →
    { num := num✝, den := den✝, den_nz := den_nz✝, reduced := reduced✝ }.num = 0
state_after: no goals
Theorem: dite_apply
File: Mathlib/Logic/Basic.lean

tactic: by_cases h:P <;> simp [h]
state_before: α : Sort u_1
σ : α → Sort u_2
P Q R : Prop
inst✝¹ : Decidable P
inst✝ : Decidable Q
a✝ b c : α
A : P → α
B : ¬P → α
f : P → (a : α) → σ a
g : ¬P → (a : α) → σ a
a : α
⊢ dite P f g a = if h : P then f h a else g h a
state_after: no goals
Theorem: continuousWithinAt_inter'
File: Mathlib/Topology/ContinuousOn.lean

tactic: simp [ContinuousWithinAt, nhdsWithin_restrict'' s h]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
inst✝⁴ : TopologicalSpace α
ι : Type u_5
π : ι → Type u_6
inst✝³ : (i : ι) → TopologicalSpace (π i)
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
s t : Set α
x : α
h : t ∈ 𝓝[s] x
⊢ ContinuousWithinAt f (s ∩ t) x ↔ ContinuousWithinAt f s x
state_after: no goals
Theorem: MonotoneOn.Iic_union_Ici
File: Mathlib/Order/Monotone/Union.lean

tactic: rw [← monotoneOn_univ, ← @Iic_union_Ici _ _ a]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : Preorder β
a : α
f : α → β
h₁ : MonotoneOn f (Iic a)
h₂ : MonotoneOn f (Ici a)
⊢ Monotone f
state_after: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : Preorder β
a : α
f : α → β
h₁ : MonotoneOn f (Iic a)
h₂ : MonotoneOn f (Ici a)
⊢ MonotoneOn f (Iic a ∪ Ici a)

tactic: exact MonotoneOn.union_right h₁ h₂ isGreatest_Iic isLeast_Ici
state_before: α : Type u_1
β : Type u_2
inst✝¹ : LinearOrder α
inst✝ : Preorder β
a : α
f : α → β
h₁ : MonotoneOn f (Iic a)
h₂ : MonotoneOn f (Ici a)
⊢ MonotoneOn f (Iic a ∪ Ici a)
state_after: no goals
Theorem: DiscreteValuationRing.eq_unit_mul_pow_irreducible
File: Mathlib/RingTheory/DiscreteValuationRing/Basic.lean

tactic: obtain ⟨n, hn⟩ := associated_pow_irreducible hx hirr
state_before: R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
x : R
hx : x ≠ 0
ϖ : R
hirr : Irreducible ϖ
⊢ ∃ n u, x = ↑u * ϖ ^ n
state_after: case intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
x : R
hx : x ≠ 0
ϖ : R
hirr : Irreducible ϖ
n : ℕ
hn : Associated x (ϖ ^ n)
⊢ ∃ n u, x = ↑u * ϖ ^ n

tactic: obtain ⟨u, rfl⟩ := hn.symm
state_before: case intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
x : R
hx : x ≠ 0
ϖ : R
hirr : Irreducible ϖ
n : ℕ
hn : Associated x (ϖ ^ n)
⊢ ∃ n u, x = ↑u * ϖ ^ n
state_after: case intro.intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
ϖ : R
hirr : Irreducible ϖ
n : ℕ
u : Rˣ
hx : ϖ ^ n * ↑u ≠ 0
hn : Associated (ϖ ^ n * ↑u) (ϖ ^ n)
⊢ ∃ n_1 u_1, ϖ ^ n * ↑u = ↑u_1 * ϖ ^ n_1

tactic: use n, u
state_before: case intro.intro
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
ϖ : R
hirr : Irreducible ϖ
n : ℕ
u : Rˣ
hx : ϖ ^ n * ↑u ≠ 0
hn : Associated (ϖ ^ n * ↑u) (ϖ ^ n)
⊢ ∃ n_1 u_1, ϖ ^ n * ↑u = ↑u_1 * ϖ ^ n_1
state_after: case h
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
ϖ : R
hirr : Irreducible ϖ
n : ℕ
u : Rˣ
hx : ϖ ^ n * ↑u ≠ 0
hn : Associated (ϖ ^ n * ↑u) (ϖ ^ n)
⊢ ϖ ^ n * ↑u = ↑u * ϖ ^ n

tactic: apply mul_comm
state_before: case h
R : Type u_1
inst✝² : CommRing R
inst✝¹ : IsDomain R
inst✝ : DiscreteValuationRing R
ϖ : R
hirr : Irreducible ϖ
n : ℕ
u : Rˣ
hx : ϖ ^ n * ↑u ≠ 0
hn : Associated (ϖ ^ n * ↑u) (ϖ ^ n)
⊢ ϖ ^ n * ↑u = ↑u * ϖ ^ n
state_after: no goals
Theorem: Filter.ker_comap
File: Mathlib/Order/Filter/Ker.lean

tactic: ext a
state_before: ι : Sort u_1
α : Type u_2
β : Type u_3
f✝ g : Filter α
s : Set α
a : α
m : α → β
f : Filter β
⊢ (comap m f).ker = m ⁻¹' f.ker
state_after: case h
ι : Sort u_1
α : Type u_2
β : Type u_3
f✝ g : Filter α
s : Set α
a✝ : α
m : α → β
f : Filter β
a : α
⊢ a ∈ (comap m f).ker ↔ a ∈ m ⁻¹' f.ker

tactic: simp only [mem_ker, mem_comap, forall_exists_index, and_imp, @forall_swap (Set α), mem_preimage]
state_before: case h
ι : Sort u_1
α : Type u_2
β : Type u_3
f✝ g : Filter α
s : Set α
a✝ : α
m : α → β
f : Filter β
a : α
⊢ a ∈ (comap m f).ker ↔ a ∈ m ⁻¹' f.ker
state_after: case h
ι : Sort u_1
α : Type u_2
β : Type u_3
f✝ g : Filter α
s : Set α
a✝ : α
m : α → β
f : Filter β
a : α
⊢ (∀ y ∈ f, ∀ (x : Set α), m ⁻¹' y ⊆ x → a ∈ x) ↔ ∀ s ∈ f, m a ∈ s

tactic: exact forall₂_congr fun s _ ↦ ⟨fun h ↦ h _ Subset.rfl, fun ha t ht ↦ ht ha⟩
state_before: case h
ι : Sort u_1
α : Type u_2
β : Type u_3
f✝ g : Filter α
s : Set α
a✝ : α
m : α → β
f : Filter β
a : α
⊢ (∀ y ∈ f, ∀ (x : Set α), m ⁻¹' y ⊆ x → a ∈ x) ↔ ∀ s ∈ f, m a ∈ s
state_after: no goals
Theorem: not_mem_mulTSupport_iff_eventuallyEq
File: Mathlib/Topology/Support.lean

tactic: simp_rw [mulTSupport, mem_closure_iff_nhds, not_forall, not_nonempty_iff_eq_empty, exists_prop,
  ← disjoint_iff_inter_eq_empty, disjoint_mulSupport_iff, eventuallyEq_iff_exists_mem]
state_before: X : Type u_1
α : Type u_2
α' : Type u_3
β : Type u_4
γ : Type u_5
δ : Type u_6
M : Type u_7
E : Type u_8
R : Type u_9
inst✝⁴ : TopologicalSpace α
inst✝³ : TopologicalSpace α'
inst✝² : One β
inst✝¹ : One γ
inst✝ : One δ
g : β → γ
f : α → β
f₂ : α → γ
m : β → γ → δ
x : α
⊢ x ∉ mulTSupport f ↔ f =ᶠ[𝓝 x] 1
state_after: no goals
Theorem: AList.extract_eq_lookup_erase
File: Mathlib/Data/List/AList.lean

tactic: simp [extract]
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
s : AList β
⊢ extract a s = (lookup a s, erase a s)
state_after: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
s : AList β
⊢ dlookup a s.entries = lookup a s ∧ { entries := kerase a s.entries, nodupKeys := ⋯ } = erase a s

tactic: constructor <;> rfl
state_before: α : Type u
β : α → Type v
inst✝ : DecidableEq α
a : α
s : AList β
⊢ dlookup a s.entries = lookup a s ∧ { entries := kerase a s.entries, nodupKeys := ⋯ } = erase a s
state_after: no goals
Theorem: CauSeq.one_not_equiv_zero
File: Mathlib/Algebra/Order/CauSeq/Basic.lean

tactic: simpa using hi _ le_rfl
state_before: α : Type u_1
β : Type u_2
inst✝³ : LinearOrderedField α
inst✝² : Ring β
inst✝¹ : IsDomain β
abv : β → α
inst✝ : IsAbsoluteValue abv
h : const abv 1 ≈ const abv 0
this : ∀ ε > 0, ∃ i, ∀ (k : ℕ), i ≤ k → abv (1 - 0) < ε
h2 : 0 < abv 1
i : ℕ
hi : ∀ (k : ℕ), i ≤ k → abv (1 - 0) < abv 1
⊢ abv 1 < abv 1
state_after: no goals
Theorem: Polynomial.hasseDeriv_apply_one
File: Mathlib/Algebra/Polynomial/HasseDeriv.lean

tactic: rw [← C_1, hasseDeriv_C k _ hk]
state_before: R : Type u_1
inst✝ : Semiring R
k : ℕ
f : R[X]
hk : 0 < k
⊢ (hasseDeriv k) 1 = 0
state_after: no goals
Theorem: CliffordAlgebra.involute_eq_of_mem_odd
File: Mathlib/LinearAlgebra/CliffordAlgebra/Conjugation.lean

tactic: induction x, h using odd_induction with
| ι m => exact involute_ι _
| add x y _hx _hy ihx ihy =>
  rw [map_add, ihx, ihy, neg_add]
| ι_mul_ι_mul m₁ m₂ x _hx ihx =>
  rw [map_mul, map_mul, involute_ι, involute_ι, ihx, neg_mul_neg, mul_neg]
state_before: R : Type u_1
inst✝² : CommRing R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
x : CliffordAlgebra Q
h : x ∈ evenOdd Q 1
⊢ involute x = -x
state_after: no goals

tactic: exact involute_ι _
state_before: case ι
R : Type u_1
inst✝² : CommRing R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
x : CliffordAlgebra Q
m : M
⊢ involute ((ι Q) m) = -(ι Q) m
state_after: no goals

tactic: rw [map_add, ihx, ihy, neg_add]
state_before: case add
R : Type u_1
inst✝² : CommRing R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
x✝ x y : CliffordAlgebra Q
_hx : x ∈ evenOdd Q 1
_hy : y ∈ evenOdd Q 1
ihx : involute x = -x
ihy : involute y = -y
⊢ involute (x + y) = -(x + y)
state_after: no goals

tactic: rw [map_mul, map_mul, involute_ι, involute_ι, ihx, neg_mul_neg, mul_neg]
state_before: case ι_mul_ι_mul
R : Type u_1
inst✝² : CommRing R
M : Type u_2
inst✝¹ : AddCommGroup M
inst✝ : Module R M
Q : QuadraticForm R M
x✝ : CliffordAlgebra Q
m₁ m₂ : M
x : CliffordAlgebra Q
_hx : x ∈ evenOdd Q 1
ihx : involute x = -x
⊢ involute ((ι Q) m₁ * (ι Q) m₂ * x) = -((ι Q) m₁ * (ι Q) m₂ * x)
state_after: no goals
Theorem: Matrix.toLinearMap₂'_comp
File: Mathlib/LinearAlgebra/Matrix/SesquilinearForm.lean

tactic: simp
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
M✝ : Type u_4
M₁ : Type u_5
M₂ : Type u_6
M₁' : Type u_7
M₂' : Type u_8
n : Type u_9
m : Type u_10
n' : Type u_11
m' : Type u_12
ι : Type u_13
inst✝¹⁰ : CommSemiring R
inst✝⁹ : Semiring R₁
inst✝⁸ : Semiring R₂
inst✝⁷ : Fintype n
inst✝⁶ : Fintype m
inst✝⁵ : DecidableEq n
inst✝⁴ : DecidableEq m
σ₁ : R₁ →+* R
σ₂ : R₂ →+* R
inst✝³ : Fintype n'
inst✝² : Fintype m'
inst✝¹ : DecidableEq n'
inst✝ : DecidableEq m'
M : Matrix n m R
P : Matrix n n' R
Q : Matrix m m' R
⊢ toMatrix₂' ((toLinearMap₂' M).compl₁₂ (toLin' P) (toLin' Q)) = toMatrix₂' (toLinearMap₂' (Pᵀ * M * Q))
state_after: no goals
Theorem: Finset.compls_sups
File: Mathlib/Data/Finset/Sups.lean

tactic: simp_rw [← image_compl]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : BooleanAlgebra α
s✝ s₁ s₂ t✝ t₁ t₂ u v : Finset α
a b c : α
s t : Finset α
⊢ (s ⊻ t)ᶜˢ = sᶜˢ ⊼ tᶜˢ
state_after: F : Type u_1
α : Type u_2
β : Type u_3
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : BooleanAlgebra α
s✝ s₁ s₂ t✝ t₁ t₂ u v : Finset α
a b c : α
s t : Finset α
⊢ image compl (s ⊻ t) = image compl s ⊼ image compl t

tactic: exact image_image₂_distrib fun _ _ ↦ compl_sup
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : BooleanAlgebra α
s✝ s₁ s₂ t✝ t₁ t₂ u v : Finset α
a b c : α
s t : Finset α
⊢ image compl (s ⊻ t) = image compl s ⊼ image compl t
state_after: no goals
Theorem: PartENat.one_lt_card_iff_nontrivial
File: Mathlib/SetTheory/Cardinal/Finite.lean

tactic: rw [← Cardinal.one_lt_iff_nontrivial]
state_before: α✝ : Type u_1
β : Type u_2
α : Type u_3
⊢ 1 < card α ↔ Nontrivial α
state_after: α✝ : Type u_1
β : Type u_2
α : Type u_3
⊢ 1 < card α ↔ 1 < #α

tactic: conv_rhs => rw [← Nat.cast_one]
state_before: α✝ : Type u_1
β : Type u_2
α : Type u_3
⊢ 1 < card α ↔ 1 < #α
state_after: α✝ : Type u_1
β : Type u_2
α : Type u_3
⊢ 1 < card α ↔ ↑1 < #α

tactic: rw [← natCast_lt_toPartENat_iff]
state_before: α✝ : Type u_1
β : Type u_2
α : Type u_3
⊢ 1 < card α ↔ ↑1 < #α
state_after: α✝ : Type u_1
β : Type u_2
α : Type u_3
⊢ 1 < card α ↔ ↑1 < toPartENat #α

tactic: simp only [PartENat.card, Nat.cast_one]
state_before: α✝ : Type u_1
β : Type u_2
α : Type u_3
⊢ 1 < card α ↔ ↑1 < toPartENat #α
state_after: no goals
Theorem: WittVector.wittZero_eq_zero
File: Mathlib/RingTheory/WittVector/Defs.lean

tactic: apply MvPolynomial.map_injective (Int.castRingHom ℚ) Int.cast_injective
state_before: p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
n : ℕ
⊢ wittZero p n = 0
state_after: case a
p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
n : ℕ
⊢ (map (Int.castRingHom ℚ)) (wittZero p n) = (map (Int.castRingHom ℚ)) 0

tactic: simp only [wittZero, wittStructureRat, bind₁, aeval_zero', constantCoeff_xInTermsOfW,
  RingHom.map_zero, AlgHom.map_zero, map_wittStructureInt]
state_before: case a
p : ℕ
R : Type u_1
hp : Fact (Nat.Prime p)
inst✝ : CommRing R
n : ℕ
⊢ (map (Int.castRingHom ℚ)) (wittZero p n) = (map (Int.castRingHom ℚ)) 0
state_after: no goals
Theorem: CstarRing.star_mul_self_ne_zero_iff
File: Mathlib/Analysis/NormedSpace/Star/Basic.lean

tactic: simp only [Ne, star_mul_self_eq_zero_iff]
state_before: 𝕜 : Type u_1
E : Type u_2
α : Type u_3
inst✝² : NonUnitalNormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
⊢ x⋆ * x ≠ 0 ↔ x ≠ 0
state_after: no goals
Theorem: Complex.abs_re_le_abs
File: Mathlib/Data/Complex/Abs.lean

tactic: rw [normSq_apply, ← sq]
state_before: z : ℂ
⊢ z.re ^ 2 ≤ normSq z
state_after: z : ℂ
⊢ z.re ^ 2 ≤ z.re ^ 2 + z.im * z.im

tactic: exact le_add_of_nonneg_right (mul_self_nonneg _)
state_before: z : ℂ
⊢ z.re ^ 2 ≤ z.re ^ 2 + z.im * z.im
state_after: no goals
Theorem: ContinuousMap.Homotopy.heq_path_of_eq_image
File: Mathlib/AlgebraicTopology/FundamentalGroupoid/InducedMaps.lean

tactic: simp only [map_eq, ← Path.Homotopic.map_lift]
state_before: X₁ X₂ Y : TopCat
f : C(↑X₁, ↑Y)
g : C(↑X₂, ↑Y)
x₀ x₁ : ↑X₁
x₂ x₃ : ↑X₂
p : Path x₀ x₁
q : Path x₂ x₃
hfg : ∀ (t : ↑I), f (p t) = g (q t)
⊢ HEq ((π.map f).map ⟦p⟧) ((π.map g).map ⟦q⟧)
state_after: X₁ X₂ Y : TopCat
f : C(↑X₁, ↑Y)
g : C(↑X₂, ↑Y)
x₀ x₁ : ↑X₁
x₂ x₃ : ↑X₂
p : Path x₀ x₁
q : Path x₂ x₃
hfg : ∀ (t : ↑I), f (p t) = g (q t)
⊢ HEq ⟦p.map ⋯⟧ ⟦q.map ⋯⟧

tactic: apply Path.Homotopic.hpath_hext
state_before: X₁ X₂ Y : TopCat
f : C(↑X₁, ↑Y)
g : C(↑X₂, ↑Y)
x₀ x₁ : ↑X₁
x₂ x₃ : ↑X₂
p : Path x₀ x₁
q : Path x₂ x₃
hfg : ∀ (t : ↑I), f (p t) = g (q t)
⊢ HEq ⟦p.map ⋯⟧ ⟦q.map ⋯⟧
state_after: case hp
X₁ X₂ Y : TopCat
f : C(↑X₁, ↑Y)
g : C(↑X₂, ↑Y)
x₀ x₁ : ↑X₁
x₂ x₃ : ↑X₂
p : Path x₀ x₁
q : Path x₂ x₃
hfg : ∀ (t : ↑I), f (p t) = g (q t)
⊢ ∀ (t : ↑I), (p.map ⋯) t = (q.map ⋯) t

tactic: exact hfg
state_before: case hp
X₁ X₂ Y : TopCat
f : C(↑X₁, ↑Y)
g : C(↑X₂, ↑Y)
x₀ x₁ : ↑X₁
x₂ x₃ : ↑X₂
p : Path x₀ x₁
q : Path x₂ x₃
hfg : ∀ (t : ↑I), f (p t) = g (q t)
⊢ ∀ (t : ↑I), (p.map ⋯) t = (q.map ⋯) t
state_after: no goals
Theorem: TensorProduct.finsuppScalarRight_apply_tmul
File: Mathlib/LinearAlgebra/DirectSum/Finsupp.lean

tactic: ext i
state_before: R : Type u_1
inst✝⁹ : CommSemiring R
M : Type u_2
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
N : Type u_3
inst✝⁶ : AddCommMonoid N
inst✝⁵ : Module R N
ι : Type u_4
inst✝⁴ : DecidableEq ι
S : Type u_5
inst✝³ : CommSemiring S
inst✝² : Algebra R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
m : M
p : ι →₀ R
⊢ (finsuppScalarRight R M ι) (m ⊗ₜ[R] p) = p.sum fun i n => Finsupp.single i (n • m)
state_after: case h
R : Type u_1
inst✝⁹ : CommSemiring R
M : Type u_2
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
N : Type u_3
inst✝⁶ : AddCommMonoid N
inst✝⁵ : Module R N
ι : Type u_4
inst✝⁴ : DecidableEq ι
S : Type u_5
inst✝³ : CommSemiring S
inst✝² : Algebra R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
m : M
p : ι →₀ R
i : ι
⊢ ((finsuppScalarRight R M ι) (m ⊗ₜ[R] p)) i = (p.sum fun i n => Finsupp.single i (n • m)) i

tactic: rw [finsuppScalarRight_apply_tmul_apply, Finsupp.sum_apply,
  Finsupp.sum_eq_single i (fun _ _ ↦ Finsupp.single_eq_of_ne) (by simp), Finsupp.single_eq_same]
state_before: case h
R : Type u_1
inst✝⁹ : CommSemiring R
M : Type u_2
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
N : Type u_3
inst✝⁶ : AddCommMonoid N
inst✝⁵ : Module R N
ι : Type u_4
inst✝⁴ : DecidableEq ι
S : Type u_5
inst✝³ : CommSemiring S
inst✝² : Algebra R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
m : M
p : ι →₀ R
i : ι
⊢ ((finsuppScalarRight R M ι) (m ⊗ₜ[R] p)) i = (p.sum fun i n => Finsupp.single i (n • m)) i
state_after: no goals

tactic: simp
state_before: R : Type u_1
inst✝⁹ : CommSemiring R
M : Type u_2
inst✝⁸ : AddCommMonoid M
inst✝⁷ : Module R M
N : Type u_3
inst✝⁶ : AddCommMonoid N
inst✝⁵ : Module R N
ι : Type u_4
inst✝⁴ : DecidableEq ι
S : Type u_5
inst✝³ : CommSemiring S
inst✝² : Algebra R S
inst✝¹ : Module S M
inst✝ : IsScalarTower R S M
m : M
p : ι →₀ R
i : ι
⊢ p i = 0 → (Finsupp.single i (0 • m)) i = 0
state_after: no goals
Theorem: Submonoid.prod_top
File: Mathlib/Algebra/Group/Submonoid/Operations.lean

tactic: simp [mem_prod, MonoidHom.coe_fst]
state_before: M : Type u_1
N : Type u_2
P : Type u_3
inst✝³ : MulOneClass M
inst✝² : MulOneClass N
inst✝¹ : MulOneClass P
S : Submonoid M
A : Type u_4
inst✝ : SetLike A M
hA : SubmonoidClass A M
S' : A
s : Submonoid M
x : M × N
⊢ x ∈ s.prod ⊤ ↔ x ∈ comap (MonoidHom.fst M N) s
state_after: no goals
Theorem: Real.Angle.sign_coe_pi_div_two
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean

tactic: rw [sign, sin_coe, sin_pi_div_two, sign_one]
state_before: ⊢ (↑(π / 2)).sign = 1
state_after: no goals
Theorem: Module.DirectLimit.congr_symm_apply_of
File: Mathlib/Algebra/DirectLimit.lean

tactic: rw [toLinearMap_symm_comp_eq, ← comp_assoc, he i, comp_assoc, comp_coe, symm_trans_self,
  refl_toLinearMap, comp_id]
state_before: R : Type u
inst✝¹¹ : Ring R
ι : Type v
inst✝¹⁰ : Preorder ι
G : ι → Type w
inst✝⁹ : (i : ι) → AddCommGroup (G i)
inst✝⁸ : (i : ι) → Module R (G i)
f : (i j : ι) → i ≤ j → G i →ₗ[R] G j
inst✝⁷ : DecidableEq ι
P : Type u₁
inst✝⁶ : AddCommGroup P
inst✝⁵ : Module R P
g✝ : (i : ι) → G i →ₗ[R] P
Hg : ∀ (i j : ι) (hij : i ≤ j) (x : G i), (g✝ j) ((f i j hij) x) = (g✝ i) x
G' : ι → Type v'
inst✝⁴ : (i : ι) → AddCommGroup (G' i)
inst✝³ : (i : ι) → Module R (G' i)
f' : (i j : ι) → i ≤ j → G' i →ₗ[R] G' j
G'' : ι → Type v''
inst✝² : (i : ι) → AddCommGroup (G'' i)
inst✝¹ : (i : ι) → Module R (G'' i)
f'' : (i j : ι) → i ≤ j → G'' i →ₗ[R] G'' j
inst✝ : IsDirected ι fun x x_1 => x ≤ x_1
e : (i : ι) → G i ≃ₗ[R] G' i
he : ∀ (i j : ι) (h : i ≤ j), ↑(e j) ∘ₗ f i j h = f' i j h ∘ₗ ↑(e i)
i✝ : ι
g : G' i✝
i j : ι
h : i ≤ j
⊢ ↑(e j).symm ∘ₗ f' i j h = f i j h ∘ₗ ↑(e i).symm
state_after: no goals
Theorem: MeasureTheory.stoppedValue_stoppedValue_leastGE
File: Mathlib/Probability/Martingale/BorelCantelli.lean

tactic: ext1 ω
state_before: Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f✝ : ℕ → Ω → ℝ
ω : Ω
f : ℕ → Ω → ℝ
π : Ω → ℕ
r : ℝ
n : ℕ
hπn : ∀ (ω : Ω), π ω ≤ n
⊢ stoppedValue (fun i => stoppedValue f (leastGE f r i)) π = stoppedValue (stoppedProcess f (leastGE f r n)) π
state_after: case h
Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f✝ : ℕ → Ω → ℝ
ω✝ : Ω
f : ℕ → Ω → ℝ
π : Ω → ℕ
r : ℝ
n : ℕ
hπn : ∀ (ω : Ω), π ω ≤ n
ω : Ω
⊢ stoppedValue (fun i => stoppedValue f (leastGE f r i)) π ω = stoppedValue (stoppedProcess f (leastGE f r n)) π ω

tactic: simp (config := { unfoldPartialApp := true }) only [stoppedProcess, stoppedValue]
state_before: case h
Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f✝ : ℕ → Ω → ℝ
ω✝ : Ω
f : ℕ → Ω → ℝ
π : Ω → ℕ
r : ℝ
n : ℕ
hπn : ∀ (ω : Ω), π ω ≤ n
ω : Ω
⊢ stoppedValue (fun i => stoppedValue f (leastGE f r i)) π ω = stoppedValue (stoppedProcess f (leastGE f r n)) π ω
state_after: case h
Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f✝ : ℕ → Ω → ℝ
ω✝ : Ω
f : ℕ → Ω → ℝ
π : Ω → ℕ
r : ℝ
n : ℕ
hπn : ∀ (ω : Ω), π ω ≤ n
ω : Ω
⊢ f (leastGE f r (π ω) ω) ω = f (min (π ω) (leastGE f r n ω)) ω

tactic: rw [leastGE_eq_min _ _ _ hπn]
state_before: case h
Ω : Type u_1
m0 : MeasurableSpace Ω
μ : Measure Ω
ℱ : Filtration ℕ m0
f✝ : ℕ → Ω → ℝ
ω✝ : Ω
f : ℕ → Ω → ℝ
π : Ω → ℕ
r : ℝ
n : ℕ
hπn : ∀ (ω : Ω), π ω ≤ n
ω : Ω
⊢ f (leastGE f r (π ω) ω) ω = f (min (π ω) (leastGE f r n ω)) ω
state_after: no goals
Theorem: SetTheory.PGame.neg_birthday_le
File: Mathlib/SetTheory/Game/Birthday.lean

tactic: simpa only [neg_birthday, ← neg_le_iff] using le_birthday (-x)
state_before: a b x : PGame
⊢ -x.birthday.toPGame ≤ x
state_after: no goals
Theorem: biSup_const
File: Mathlib/Order/CompleteLattice.lean

tactic: haveI : Nonempty s := Set.nonempty_coe_sort.mpr hs
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 : α
ι : Type u_9
a : α
s : Set ι
hs : s.Nonempty
⊢ ⨆ i ∈ s, a = a
state_after: α : 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 : α
ι : Type u_9
a : α
s : Set ι
hs : s.Nonempty
this : Nonempty ↑s
⊢ ⨆ i ∈ s, a = a

tactic: rw [← iSup_subtype'', iSup_const]
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 : α
ι : Type u_9
a : α
s : Set ι
hs : s.Nonempty
this : Nonempty ↑s
⊢ ⨆ i ∈ s, a = a
state_after: no goals
Theorem: inducing_of_inducing_compose
File: Mathlib/Topology/Maps.lean

tactic: rwa [← continuous_iff_le_induced]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Continuous f
hg : Continuous g
hgf : Inducing (g ∘ f)
⊢ inst✝² ≤ induced f inst✝¹
state_after: no goals

tactic: rw [hgf.induced, ← induced_compose]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Continuous f
hg : Continuous g
hgf : Inducing (g ∘ f)
⊢ induced f inst✝¹ ≤ inst✝²
state_after: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Continuous f
hg : Continuous g
hgf : Inducing (g ∘ f)
⊢ induced f inst✝¹ ≤ induced f (induced g inst✝)

tactic: exact induced_mono hg.le_induced
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
ι : Type u_4
f : X → Y
g : Y → Z
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
hf : Continuous f
hg : Continuous g
hgf : Inducing (g ∘ f)
⊢ induced f inst✝¹ ≤ induced f (induced g inst✝)
state_after: no goals
Theorem: Set.encard_exchange'
File: Mathlib/Data/Set/Card.lean

tactic: rw [← insert_diff_singleton_comm (by rintro rfl; exact ha hb), encard_exchange ha hb]
state_before: α : Type u_1
β : Type u_2
s t : Set α
a b : α
ha : a ∉ s
hb : b ∈ s
⊢ (insert a s \ {b}).encard = s.encard
state_after: no goals

tactic: rintro rfl
state_before: α : Type u_1
β : Type u_2
s t : Set α
a b : α
ha : a ∉ s
hb : b ∈ s
⊢ a ≠ b
state_after: α : Type u_1
β : Type u_2
s t : Set α
a : α
ha : a ∉ s
hb : a ∈ s
⊢ False

tactic: exact ha hb
state_before: α : Type u_1
β : Type u_2
s t : Set α
a : α
ha : a ∉ s
hb : a ∈ s
⊢ False
state_after: no goals
Theorem: RCLike.normSq_conj
File: Mathlib/Analysis/RCLike/Basic.lean

tactic: simp only [normSq_apply, neg_mul, mul_neg, neg_neg, rclike_simps]
state_before: K : Type u_1
E : Type u_2
inst✝ : RCLike K
z✝ z : K
⊢ normSq ((starRingEnd K) z) = normSq z
state_after: no goals