1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: Set.mem_image2_iff
File: Mathlib/Data/Set/NAry.lean

tactic: rintro ⟨a', ha', b', hb', h⟩
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' : δ
hf : Injective2 f
⊢ f a b ∈ image2 f s t → a ∈ s ∧ b ∈ t
state_after: case intro.intro.intro.intro
α : 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' : δ
hf : Injective2 f
a' : α
ha' : a' ∈ s
b' : β
hb' : b' ∈ t
h : f a' b' = f a b
⊢ a ∈ s ∧ b ∈ t

tactic: rcases hf h with ⟨rfl, rfl⟩
state_before: case intro.intro.intro.intro
α : 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' : δ
hf : Injective2 f
a' : α
ha' : a' ∈ s
b' : β
hb' : b' ∈ t
h : f a' b' = f a b
⊢ a ∈ s ∧ b ∈ t
state_after: case intro.intro.intro.intro.intro
α : 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'✝ : α
b'✝ : β
c c' : γ
d d' : δ
hf : Injective2 f
a' : α
ha' : a' ∈ s
b' : β
hb' : b' ∈ t
h : f a' b' = f a' b'
⊢ a' ∈ s ∧ b' ∈ t

tactic: exact ⟨ha', hb'⟩
state_before: case intro.intro.intro.intro.intro
α : 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'✝ : α
b'✝ : β
c c' : γ
d d' : δ
hf : Injective2 f
a' : α
ha' : a' ∈ s
b' : β
hb' : b' ∈ t
h : f a' b' = f a' b'
⊢ a' ∈ s ∧ b' ∈ t
state_after: no goals
Theorem: List.chain_map
File: Mathlib/Data/List/Chain.lean

tactic: induction l generalizing b <;> simp only [map, Chain.nil, chain_cons, *]
state_before: α : Type u
β : Type v
R r : α → α → Prop
l✝ l₁ l₂ : List α
a b✝ : α
f : β → α
b : β
l : List β
⊢ Chain R (f b) (map f l) ↔ Chain (fun a b => R (f a) (f b)) b l
state_after: no goals
Theorem: Finset.compls_infs
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_inf
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: QuotientGroup.isOpenMap_coe
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: intro s s_op
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
N : Subgroup G
n : N.Normal
⊢ IsOpenMap mk
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
N : Subgroup G
n : N.Normal
s : Set G
s_op : IsOpen s
⊢ IsOpen (mk '' s)

tactic: change IsOpen (((↑) : G → G ⧸ N) ⁻¹' ((↑) '' s))
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
N : Subgroup G
n : N.Normal
s : Set G
s_op : IsOpen s
⊢ IsOpen (mk '' s)
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
N : Subgroup G
n : N.Normal
s : Set G
s_op : IsOpen s
⊢ IsOpen (mk ⁻¹' (mk '' s))

tactic: rw [QuotientGroup.preimage_image_mk N s]
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
N : Subgroup G
n : N.Normal
s : Set G
s_op : IsOpen s
⊢ IsOpen (mk ⁻¹' (mk '' s))
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
N : Subgroup G
n : N.Normal
s : Set G
s_op : IsOpen s
⊢ IsOpen (⋃ x, (fun x_1 => x_1 * ↑x) ⁻¹' s)

tactic: exact isOpen_iUnion fun n => (continuous_mul_right _).isOpen_preimage s s_op
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace G
inst✝¹ : Group G
inst✝ : TopologicalGroup G
N : Subgroup G
n : N.Normal
s : Set G
s_op : IsOpen s
⊢ IsOpen (⋃ x, (fun x_1 => x_1 * ↑x) ⁻¹' s)
state_after: no goals
Theorem: Polynomial.derivative_sq
File: Mathlib/Algebra/Polynomial/Derivative.lean

tactic: rw [derivative_pow_succ, Nat.cast_one, one_add_one_eq_two, pow_one]
state_before: R : Type u
S : Type v
T : Type w
ι : Type y
A : Type z
a b : R
n : ℕ
inst✝ : CommSemiring R
p : R[X]
⊢ derivative (p ^ 2) = C 2 * p * derivative p
state_after: no goals
Theorem: expNegInvGlue.nonneg
File: Mathlib/Analysis/SpecialFunctions/SmoothTransition.lean

tactic: cases le_or_gt x 0 with
| inl h => exact ge_of_eq (zero_of_nonpos h)
| inr h => exact le_of_lt (pos_of_pos h)
state_before: x : ℝ
⊢ 0 ≤ expNegInvGlue x
state_after: no goals

tactic: exact ge_of_eq (zero_of_nonpos h)
state_before: case inl
x : ℝ
h : x ≤ 0
⊢ 0 ≤ expNegInvGlue x
state_after: no goals

tactic: exact le_of_lt (pos_of_pos h)
state_before: case inr
x : ℝ
h : x > 0
⊢ 0 ≤ expNegInvGlue x
state_after: no goals
Theorem: Combinatorics.Line.exists_mono_in_high_dimension
File: Mathlib/Combinatorics/HalesJewett.lean

tactic: rw [← hc x, Function.comp_apply]
state_before: α : Type u
inst✝¹ : Finite α
κ : Type v
inst✝ : Finite κ
ι : Type
ιfin : Fintype ι
hι : ∀ (C : (ι → α) → ULift.{u, v} κ), ∃ l, IsMono C l
C : (ι → α) → κ
l : Line α ι
c : ULift.{u, v} κ
hc : ∀ (x : α), (ULift.up ∘ C) ((fun x i => (l.idxFun i).getD x) x) = c
x : α
⊢ C ((fun x i => (l.idxFun i).getD x) x) = c.down
state_after: no goals
Theorem: Polynomial.toContinuousMapOn_X_eq_restrict_id
File: Mathlib/Topology/ContinuousFunction/Polynomial.lean

tactic: ext
state_before: R : Type u_1
inst✝² : Semiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
⊢ X.toContinuousMapOn s = restrict s (ContinuousMap.id R)
state_after: case h
R : Type u_1
inst✝² : Semiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
a✝ : ↑s
⊢ (X.toContinuousMapOn s) a✝ = (restrict s (ContinuousMap.id R)) a✝

tactic: simp
state_before: case h
R : Type u_1
inst✝² : Semiring R
inst✝¹ : TopologicalSpace R
inst✝ : TopologicalSemiring R
s : Set R
a✝ : ↑s
⊢ (X.toContinuousMapOn s) a✝ = (restrict s (ContinuousMap.id R)) a✝
state_after: no goals
Theorem: Set.iUnion_prod
File: Mathlib/Data/Set/Lattice.lean

tactic: ext
state_before: α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι✝ : Sort u_4
ι'✝ : Sort u_5
ι₂ : Sort u_6
κ : ι✝ → Sort u_7
κ₁ : ι✝ → Sort u_8
κ₂ : ι✝ → Sort u_9
κ' : ι'✝ → Sort u_10
ι : Type u_11
ι' : Type u_12
α : Type u_13
β : Type u_14
s : ι → Set α
t : ι' → Set β
⊢ ⋃ x, s x.1 ×ˢ t x.2 = (⋃ i, s i) ×ˢ ⋃ i, t i
state_after: case h
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι✝ : Sort u_4
ι'✝ : Sort u_5
ι₂ : Sort u_6
κ : ι✝ → Sort u_7
κ₁ : ι✝ → Sort u_8
κ₂ : ι✝ → Sort u_9
κ' : ι'✝ → Sort u_10
ι : Type u_11
ι' : Type u_12
α : Type u_13
β : Type u_14
s : ι → Set α
t : ι' → Set β
x✝ : α × β
⊢ x✝ ∈ ⋃ x, s x.1 ×ˢ t x.2 ↔ x✝ ∈ (⋃ i, s i) ×ˢ ⋃ i, t i

tactic: simp
state_before: case h
α✝ : Type u_1
β✝ : Type u_2
γ : Type u_3
ι✝ : Sort u_4
ι'✝ : Sort u_5
ι₂ : Sort u_6
κ : ι✝ → Sort u_7
κ₁ : ι✝ → Sort u_8
κ₂ : ι✝ → Sort u_9
κ' : ι'✝ → Sort u_10
ι : Type u_11
ι' : Type u_12
α : Type u_13
β : Type u_14
s : ι → Set α
t : ι' → Set β
x✝ : α × β
⊢ x✝ ∈ ⋃ x, s x.1 ×ˢ t x.2 ↔ x✝ ∈ (⋃ i, s i) ×ˢ ⋃ i, t i
state_after: no goals
Theorem: Basis.sum_dual_apply_smul_coord
File: Mathlib/LinearAlgebra/Dual.lean

tactic: ext m
state_before: R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : Fintype ι
b : Basis ι R M
f : Dual R M
⊢ ∑ x : ι, f (b x) • b.coord x = f
state_after: case h
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : Fintype ι
b : Basis ι R M
f : Dual R M
m : M
⊢ (∑ x : ι, f (b x) • b.coord x) m = f m

tactic: simp_rw [LinearMap.sum_apply, LinearMap.smul_apply, smul_eq_mul, mul_comm (f _), ← smul_eq_mul, ←
  f.map_smul, ← _root_.map_sum, Basis.coord_apply, Basis.sum_repr]
state_before: case h
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : Fintype ι
b : Basis ι R M
f : Dual R M
m : M
⊢ (∑ x : ι, f (b x) • b.coord x) m = f m
state_after: no goals
Theorem: List.countP_filter
File: .lake/packages/batteries/Batteries/Data/List/Count.lean

tactic: simp only [countP_eq_length_filter, filter_filter]
state_before: α : Type u_1
p q : α → Bool
l : List α
⊢ countP p (filter q l) = countP (fun a => decide (p a = true ∧ q a = true)) l
state_after: no goals
Theorem: Ideal.mul_sup_eq_of_coprime_right
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: rw [sup_comm] at h
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
h : K ⊔ J = ⊤
⊢ I * K ⊔ J = I ⊔ J
state_after: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
h : J ⊔ K = ⊤
⊢ I * K ⊔ J = I ⊔ J

tactic: rw [sup_comm, sup_mul_eq_of_coprime_right h, sup_comm]
state_before: R : Type u
ι : Type u_1
inst✝ : CommSemiring R
I J K L : Ideal R
h : J ⊔ K = ⊤
⊢ I * K ⊔ J = I ⊔ J
state_after: no goals
Theorem: IsBezout.dvd_gcd
File: Mathlib/RingTheory/PrincipalIdealDomain.lean

tactic: rw [← Ideal.span_singleton_le_span_singleton] at hx hy ⊢
state_before: R : Type u
M : Type v
inst✝¹ : CommRing R
x y z : R
inst✝ : IsPrincipal (Ideal.span {x, y})
hx : z ∣ x
hy : z ∣ y
⊢ z ∣ gcd x y
state_after: R : Type u
M : Type v
inst✝¹ : CommRing R
x y z : R
inst✝ : IsPrincipal (Ideal.span {x, y})
hx : Ideal.span {x} ≤ Ideal.span {z}
hy : Ideal.span {y} ≤ Ideal.span {z}
⊢ Ideal.span {gcd x y} ≤ Ideal.span {z}

tactic: rw [span_gcd, Ideal.span_insert, sup_le_iff]
state_before: R : Type u
M : Type v
inst✝¹ : CommRing R
x y z : R
inst✝ : IsPrincipal (Ideal.span {x, y})
hx : Ideal.span {x} ≤ Ideal.span {z}
hy : Ideal.span {y} ≤ Ideal.span {z}
⊢ Ideal.span {gcd x y} ≤ Ideal.span {z}
state_after: R : Type u
M : Type v
inst✝¹ : CommRing R
x y z : R
inst✝ : IsPrincipal (Ideal.span {x, y})
hx : Ideal.span {x} ≤ Ideal.span {z}
hy : Ideal.span {y} ≤ Ideal.span {z}
⊢ Ideal.span {x} ≤ Ideal.span {z} ∧ Ideal.span {y} ≤ Ideal.span {z}

tactic: exact ⟨hx, hy⟩
state_before: R : Type u
M : Type v
inst✝¹ : CommRing R
x y z : R
inst✝ : IsPrincipal (Ideal.span {x, y})
hx : Ideal.span {x} ≤ Ideal.span {z}
hy : Ideal.span {y} ≤ Ideal.span {z}
⊢ Ideal.span {x} ≤ Ideal.span {z} ∧ Ideal.span {y} ≤ Ideal.span {z}
state_after: no goals
Theorem: pow_mul_comm
File: Mathlib/Algebra/Group/Defs.lean

tactic: rw [← pow_add, ← pow_add, Nat.add_comm]
state_before: G : Type u_1
M : Type u_2
inst✝ : Monoid M
a✝ b c : M
m✝ n✝ : ℕ
a : M
m n : ℕ
⊢ a ^ m * a ^ n = a ^ n * a ^ m
state_after: no goals
Theorem: AlgebraicGeometry.QuasiCompact.affineProperty_toProperty
File: Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean

tactic: delta AffineTargetMorphismProperty.toProperty QuasiCompact.affineProperty
state_before: X✝ Y✝ : Scheme
f✝ : X✝ ⟶ Y✝
X Y : Scheme
f : X ⟶ Y
⊢ affineProperty.toProperty f ↔ IsAffine Y ∧ CompactSpace ↑↑X.toPresheafedSpace
state_after: X✝ Y✝ : Scheme
f✝ : X✝ ⟶ Y✝
X Y : Scheme
f : X ⟶ Y
⊢ (∃ (_ : IsAffine Y), CompactSpace ↑↑X.toPresheafedSpace) ↔ IsAffine Y ∧ CompactSpace ↑↑X.toPresheafedSpace

tactic: simp
state_before: X✝ Y✝ : Scheme
f✝ : X✝ ⟶ Y✝
X Y : Scheme
f : X ⟶ Y
⊢ (∃ (_ : IsAffine Y), CompactSpace ↑↑X.toPresheafedSpace) ↔ IsAffine Y ∧ CompactSpace ↑↑X.toPresheafedSpace
state_after: no goals
Theorem: Rat.num_dvd
File: Mathlib/Data/Rat/Lemmas.lean

tactic: cases' e : a /. b with n d h c
state_before: a b : ℤ
b0 : b ≠ 0
⊢ (a /. b).num ∣ a
state_after: case mk'
a b : ℤ
b0 : b ≠ 0
n : ℤ
d : ℕ
h : d ≠ 0
c : n.natAbs.Coprime d
e : a /. b = { num := n, den := d, den_nz := h, reduced := c }
⊢ { num := n, den := d, den_nz := h, reduced := c }.num ∣ a

tactic: rw [Rat.mk'_eq_divInt, divInt_eq_iff b0 (mod_cast h)] at e
state_before: case mk'
a b : ℤ
b0 : b ≠ 0
n : ℤ
d : ℕ
h : d ≠ 0
c : n.natAbs.Coprime d
e : a /. b = { num := n, den := d, den_nz := h, reduced := c }
⊢ { num := n, den := d, den_nz := h, reduced := c }.num ∣ a
state_after: case mk'
a b : ℤ
b0 : b ≠ 0
n : ℤ
d : ℕ
h : d ≠ 0
c : n.natAbs.Coprime d
e : a * ↑d = n * b
⊢ { num := n, den := d, den_nz := h, reduced := c }.num ∣ a

tactic: refine Int.natAbs_dvd.1 <| Int.dvd_natAbs.1 <| Int.natCast_dvd_natCast.2 <|
  c.dvd_of_dvd_mul_right ?_
state_before: case mk'
a b : ℤ
b0 : b ≠ 0
n : ℤ
d : ℕ
h : d ≠ 0
c : n.natAbs.Coprime d
e : a * ↑d = n * b
⊢ { num := n, den := d, den_nz := h, reduced := c }.num ∣ a
state_after: case mk'
a b : ℤ
b0 : b ≠ 0
n : ℤ
d : ℕ
h : d ≠ 0
c : n.natAbs.Coprime d
e : a * ↑d = n * b
⊢ n.natAbs ∣ a.natAbs * d

tactic: have := congr_arg Int.natAbs e
state_before: case mk'
a b : ℤ
b0 : b ≠ 0
n : ℤ
d : ℕ
h : d ≠ 0
c : n.natAbs.Coprime d
e : a * ↑d = n * b
⊢ n.natAbs ∣ a.natAbs * d
state_after: case mk'
a b : ℤ
b0 : b ≠ 0
n : ℤ
d : ℕ
h : d ≠ 0
c : n.natAbs.Coprime d
e : a * ↑d = n * b
this : (a * ↑d).natAbs = (n * b).natAbs
⊢ n.natAbs ∣ a.natAbs * d

tactic: simp only [Int.natAbs_mul, Int.natAbs_ofNat] at this
state_before: case mk'
a b : ℤ
b0 : b ≠ 0
n : ℤ
d : ℕ
h : d ≠ 0
c : n.natAbs.Coprime d
e : a * ↑d = n * b
this : (a * ↑d).natAbs = (n * b).natAbs
⊢ n.natAbs ∣ a.natAbs * d
state_after: case mk'
a b : ℤ
b0 : b ≠ 0
n : ℤ
d : ℕ
h : d ≠ 0
c : n.natAbs.Coprime d
e : a * ↑d = n * b
this : a.natAbs * d = n.natAbs * b.natAbs
⊢ n.natAbs ∣ a.natAbs * d

tactic: simp [this]
state_before: case mk'
a b : ℤ
b0 : b ≠ 0
n : ℤ
d : ℕ
h : d ≠ 0
c : n.natAbs.Coprime d
e : a * ↑d = n * b
this : a.natAbs * d = n.natAbs * b.natAbs
⊢ n.natAbs ∣ a.natAbs * d
state_after: no goals
Theorem: Real.logb_neg_iff_of_base_lt_one
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: rw [← @logb_one b, logb_lt_logb_iff_of_base_lt_one b_pos b_lt_one h zero_lt_one]
state_before: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
h : 0 < x
⊢ logb b x < 0 ↔ 1 < x
state_after: no goals
Theorem: MeasureTheory.L2.inner_indicatorConstLp_eq_inner_setIntegral
File: Mathlib/MeasureTheory/Function/L2Space.lean

tactic: rw [← integral_inner (integrableOn_Lp_of_measure_ne_top f fact_one_le_two_ennreal.elim hμs),
  L2.inner_indicatorConstLp_eq_setIntegral_inner]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
𝕜 : Type u_4
inst✝⁶ : RCLike 𝕜
inst✝⁵ : MeasurableSpace α
μ : Measure α
inst✝⁴ : NormedAddCommGroup E
inst✝³ : InnerProductSpace 𝕜 E
inst✝² : NormedAddCommGroup F
s : Set α
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
hs : MeasurableSet s
hμs : μ s ≠ ⊤
c : E
f : ↥(Lp E 2 μ)
⊢ ⟪indicatorConstLp 2 hs hμs c, f⟫_𝕜 = ⟪c, ∫ (x : α) in s, ↑↑f x ∂μ⟫_𝕜
state_after: no goals
Theorem: SetTheory.PGame.Domineering.moveRight_card
File: Mathlib/SetTheory/Game/Domineering.lean

tactic: dsimp [moveRight]
state_before: b : Board
m : ℤ × ℤ
h : m ∈ right b
⊢ Finset.card (moveRight b m) + 2 = Finset.card b
state_after: b : Board
m : ℤ × ℤ
h : m ∈ right b
⊢ ((Finset.erase b m).erase (m.1 - 1, m.2)).card + 2 = Finset.card b

tactic: rw [Finset.card_erase_of_mem (fst_pred_mem_erase_of_mem_right h)]
state_before: b : Board
m : ℤ × ℤ
h : m ∈ right b
⊢ ((Finset.erase b m).erase (m.1 - 1, m.2)).card + 2 = Finset.card b
state_after: b : Board
m : ℤ × ℤ
h : m ∈ right b
⊢ (Finset.erase b m).card - 1 + 2 = Finset.card b

tactic: rw [Finset.card_erase_of_mem (Finset.mem_of_mem_inter_left h)]
state_before: b : Board
m : ℤ × ℤ
h : m ∈ right b
⊢ (Finset.erase b m).card - 1 + 2 = Finset.card b
state_after: b : Board
m : ℤ × ℤ
h : m ∈ right b
⊢ Finset.card b - 1 - 1 + 2 = Finset.card b

tactic: exact tsub_add_cancel_of_le (card_of_mem_right h)
state_before: b : Board
m : ℤ × ℤ
h : m ∈ right b
⊢ Finset.card b - 1 - 1 + 2 = Finset.card b
state_after: no goals
Theorem: Prod.card_box_succ
File: Mathlib/Order/Interval/Finset/Box.lean

tactic: rw [box_succ_eq_sdiff, card_sdiff (Icc_neg_mono n.le_succ), Prod.card_Icc, Prod.card_Icc]
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : OrderedRing α
inst✝⁵ : OrderedRing β
inst✝⁴ : LocallyFiniteOrder α
inst✝³ : LocallyFiniteOrder β
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
n : ℕ
⊢ (box (n + 1)).card =
    (Icc (-↑n.succ) ↑n.succ).card * (Icc (-↑n.succ) ↑n.succ).card - (Icc (-↑n) ↑n).card * (Icc (-↑n) ↑n).card
state_after: α : Type u_1
β : Type u_2
inst✝⁶ : OrderedRing α
inst✝⁵ : OrderedRing β
inst✝⁴ : LocallyFiniteOrder α
inst✝³ : LocallyFiniteOrder β
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
n : ℕ
⊢ (Icc (-↑n.succ).1 (↑n.succ).1).card * (Icc (-↑n.succ).2 (↑n.succ).2).card -
      (Icc (-↑n).1 (↑n).1).card * (Icc (-↑n).2 (↑n).2).card =
    (Icc (-↑n.succ) ↑n.succ).card * (Icc (-↑n.succ) ↑n.succ).card - (Icc (-↑n) ↑n).card * (Icc (-↑n) ↑n).card

tactic: rfl
state_before: α : Type u_1
β : Type u_2
inst✝⁶ : OrderedRing α
inst✝⁵ : OrderedRing β
inst✝⁴ : LocallyFiniteOrder α
inst✝³ : LocallyFiniteOrder β
inst✝² : DecidableEq α
inst✝¹ : DecidableEq β
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
n : ℕ
⊢ (Icc (-↑n.succ).1 (↑n.succ).1).card * (Icc (-↑n.succ).2 (↑n.succ).2).card -
      (Icc (-↑n).1 (↑n).1).card * (Icc (-↑n).2 (↑n).2).card =
    (Icc (-↑n.succ) ↑n.succ).card * (Icc (-↑n.succ) ↑n.succ).card - (Icc (-↑n) ↑n).card * (Icc (-↑n) ↑n).card
state_after: no goals
Theorem: Polynomial.aroots_zero
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: rw [← C_0, aroots_C]
state_before: R : Type u
S✝ : Type v
T : Type w
a b : R
n : ℕ
inst✝⁵ : CommRing R
inst✝⁴ : IsDomain R
p q : R[X]
inst✝³ : CommRing T
S : Type u_1
inst✝² : CommRing S
inst✝¹ : IsDomain S
inst✝ : Algebra T S
⊢ aroots 0 S = 0
state_after: no goals
Theorem: CategoryTheory.PresheafOfGroups.OneCocycle.ev_refl
File: Mathlib/CategoryTheory/Sites/NonabelianCohomology/H1.lean

tactic: simpa using γ.ev_trans i i i a a a
state_before: C : Type u
inst✝ : Category.{v, u} C
G : Cᵒᵖ ⥤ Grp
X : C
I : Type w'
U : I → C
γ : OneCocycle G U
i : I
T : C
a : T ⟶ U i
⊢ γ.ev i i a a = 1
state_after: no goals
Theorem: Complex.map_isometryOfOrthonormal
File: Mathlib/Analysis/InnerProductSpace/PiL2.lean

tactic: simp [Complex.isometryOfOrthonormal, LinearIsometryEquiv.trans_assoc, OrthonormalBasis.map]
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 ι
v : OrthonormalBasis (Fin 2) ℝ F
f : F ≃ₗᵢ[ℝ] F'
⊢ isometryOfOrthonormal (v.map f) = (isometryOfOrthonormal v).trans f
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 ι
v : OrthonormalBasis (Fin 2) ℝ F
f : F ≃ₗᵢ[ℝ] F'
⊢ orthonormalBasisOneI.repr.trans (v.repr.symm.trans f) = (orthonormalBasisOneI.repr.trans v.repr.symm).trans f

tactic: rw [LinearIsometryEquiv.trans_assoc]
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 ι
v : OrthonormalBasis (Fin 2) ℝ F
f : F ≃ₗᵢ[ℝ] F'
⊢ orthonormalBasisOneI.repr.trans (v.repr.symm.trans f) = (orthonormalBasisOneI.repr.trans v.repr.symm).trans f
state_after: no goals
Theorem: add_tsub_le_tsub_add
File: Mathlib/Algebra/Order/Sub/Defs.lean

tactic: rw [add_comm, add_comm _ b]
state_before: α : Type u_1
β : Type u_2
inst✝⁴ : Preorder α
inst✝³ : AddCommSemigroup α
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ a + b - c ≤ a - c + b
state_after: α : Type u_1
β : Type u_2
inst✝⁴ : Preorder α
inst✝³ : AddCommSemigroup α
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ b + a - c ≤ b + (a - c)

tactic: exact add_tsub_le_assoc
state_before: α : Type u_1
β : Type u_2
inst✝⁴ : Preorder α
inst✝³ : AddCommSemigroup α
inst✝² : Sub α
inst✝¹ : OrderedSub α
a b c d : α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ b + a - c ≤ b + (a - c)
state_after: no goals
Theorem: Basis.toDual_total_right
File: Mathlib/LinearAlgebra/Dual.lean

tactic: rw [Finsupp.total_apply, Finsupp.sum, _root_.map_sum]
state_before: R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
⊢ (b.toDual (b i)) ((Finsupp.total ι M R ⇑b) f) = f i
state_after: R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
⊢ ∑ x ∈ f.support, (b.toDual (b i)) (f x • b x) = f i

tactic: simp_rw [LinearMap.map_smul, toDual_apply, smul_eq_mul, mul_boole, Finset.sum_ite_eq]
state_before: R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
⊢ ∑ x ∈ f.support, (b.toDual (b i)) (f x • b x) = f i
state_after: R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
⊢ (if i ∈ f.support then f i else 0) = f i

tactic: split_ifs with h
state_before: R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
⊢ (if i ∈ f.support then f i else 0) = f i
state_after: case pos
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
h : i ∈ f.support
⊢ f i = f i

case neg
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
h : i ∉ f.support
⊢ 0 = f i

tactic: rfl
state_before: case pos
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
h : i ∈ f.support
⊢ f i = f i
state_after: no goals

tactic: rw [Finsupp.not_mem_support_iff.mp h]
state_before: case neg
R : Type uR
M : Type uM
K : Type uK
V : Type uV
ι : Type uι
inst✝³ : CommSemiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : DecidableEq ι
b : Basis ι R M
f : ι →₀ R
i : ι
h : i ∉ f.support
⊢ 0 = f i
state_after: no goals