tasksource/leandojo huggingface dataset:
Theorem: mul_rotate
File: Mathlib/Algebra/Group/Basic.lean

tactic: simp only [mul_left_comm, mul_comm]
state_before: α : Type ?u.7400
β : Type ?u.7403
G : Type u_1
inst✝ : CommSemigroup G
a b c : G
⊢ a * b * c = b * c * a
Theorem: MeasureTheory.quasiMeasurePreserving_mul_right
File: Mathlib/MeasureTheory/Group/Prod.lean

tactic: refine' ⟨measurable_mul_const g, AbsolutelyContinuous.mk fun s hs => _⟩
state_before: G : Type u_1
inst✝⁶ : MeasurableSpace G
inst✝⁵ : Group G
inst✝⁴ : MeasurableMul₂ G
μ ν : Measure G
inst✝³ : SigmaFinite ν
inst✝² : SigmaFinite μ
s : Set G
inst✝¹ : MeasurableInv G
inst✝ : IsMulLeftInvariant μ
g : G
⊢ QuasiMeasurePreserving fun h => h * g

tactic: rw [map_apply (measurable_mul_const g) hs, measure_mul_right_null]
state_before: G : Type u_1
inst✝⁶ : MeasurableSpace G
inst✝⁵ : Group G
inst✝⁴ : MeasurableMul₂ G
μ ν : Measure G
inst✝³ : SigmaFinite ν
inst✝² : SigmaFinite μ
s✝ : Set G
inst✝¹ : MeasurableInv G
inst✝ : IsMulLeftInvariant μ
g : G
s : Set G
hs : MeasurableSet s
⊢ ↑↑μ s = 0 → ↑↑(map (fun h => h * g) μ) s = 0

tactic: exact id
state_before: G : Type u_1
inst✝⁶ : MeasurableSpace G
inst✝⁵ : Group G
inst✝⁴ : MeasurableMul₂ G
μ ν : Measure G
inst✝³ : SigmaFinite ν
inst✝² : SigmaFinite μ
s✝ : Set G
inst✝¹ : MeasurableInv G
inst✝ : IsMulLeftInvariant μ
g : G
s : Set G
hs : MeasurableSet s
⊢ ↑↑μ s = 0 → ↑↑μ s = 0
Theorem: norm_indicator_le_of_subset
File: Mathlib/Analysis/NormedSpace/IndicatorFunction.lean

tactic: simp only [norm_indicator_eq_indicator_norm]
state_before: α : Type u_1
E : Type u_2
inst✝ : SeminormedAddCommGroup E
s t : Set α
f✝ : α → E
a✝ : α
h : s ⊆ t
f : α → E
a : α
⊢ ‖indicator s f a‖ ≤ ‖indicator t f a‖

tactic: exact indicator_le_indicator_of_subset ‹_› (fun _ => norm_nonneg _) _
state_before: α : Type u_1
E : Type u_2
inst✝ : SeminormedAddCommGroup E
s t : Set α
f✝ : α → E
a✝ : α
h : s ⊆ t
f : α → E
a : α
⊢ indicator s (fun a => ‖f a‖) a ≤ indicator t (fun a => ‖f a‖) a
Theorem: Finsupp.support_smul_eq
File: Mathlib/Data/Finsupp/Basic.lean

tactic: simp [Finsupp.smul_apply, hb]
state_before: α : Type u_3
β : Type ?u.619677
γ : Type ?u.619680
ι : Type ?u.619683
M : Type u_2
M' : Type ?u.619689
N : Type ?u.619692
P : Type ?u.619695
G : Type ?u.619698
H : Type ?u.619701
R : Type u_1
S : Type ?u.619707
inst✝³ : Semiring R
inst✝² : AddCommMonoid M
inst✝¹ : Module R M
inst✝ : NoZeroSMulDivisors R M
b : R
hb : b ≠ 0
g : α →₀ M
a : α
⊢ a ∈ (b • g).support ↔ a ∈ g.support
Theorem: CategoryTheory.tensorRightHomEquiv_symm_coevaluation_comp_tensor_id
File: Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean

tactic: dsimp [tensorRightHomEquiv]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
Y Y' Z : C
inst✝ : ExactPairing Y Y'
f : Y ⟶ Z
⊢ ↑(tensorRightHomEquiv (𝟙_ C) Y Y' Z).symm (η_ Y Y' ≫ (f ⊗ 𝟙 Y')) = (λ_ Y).hom ≫ f

tactic: rw [comp_tensor_id]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
Y Y' Z : C
inst✝ : ExactPairing Y Y'
f : Y ⟶ Z
⊢ (η_ Y Y' ≫ (f ⊗ 𝟙 Y') ⊗ 𝟙 Y) ≫ (α_ Z Y' Y).hom ≫ (𝟙 Z ⊗ ε_ Y Y') ≫ (ρ_ Z).hom = (λ_ Y).hom ≫ f

tactic: slice_lhs 2 3 => rw [associator_naturality]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
Y Y' Z : C
inst✝ : ExactPairing Y Y'
f : Y ⟶ Z
⊢ ((η_ Y Y' ⊗ 𝟙 Y) ≫ ((f ⊗ 𝟙 Y') ⊗ 𝟙 Y)) ≫ (α_ Z Y' Y).hom ≫ (𝟙 Z ⊗ ε_ Y Y') ≫ (ρ_ Z).hom = (λ_ Y).hom ≫ f

tactic: slice_lhs 3 4 => rw [tensor_id, tensor_id_comp_id_tensor, ← id_tensor_comp_tensor_id]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
Y Y' Z : C
inst✝ : ExactPairing Y Y'
f : Y ⟶ Z
⊢ (η_ Y Y' ⊗ 𝟙 Y) ≫ (((α_ Y Y' Y).hom ≫ (f ⊗ 𝟙 Y' ⊗ 𝟙 Y)) ≫ (𝟙 Z ⊗ ε_ Y Y')) ≫ (ρ_ Z).hom = (λ_ Y).hom ≫ f

tactic: slice_lhs 1 3 => rw [evaluation_coevaluation]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
Y Y' Z : C
inst✝ : ExactPairing Y Y'
f : Y ⟶ Z
⊢ (η_ Y Y' ⊗ 𝟙 Y) ≫ (α_ Y Y' Y).hom ≫ ((𝟙 Y ⊗ ε_ Y Y') ≫ (f ⊗ 𝟙 (𝟙_ C))) ≫ (ρ_ Z).hom = (λ_ Y).hom ≫ f

tactic: simp
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
Y Y' Z : C
inst✝ : ExactPairing Y Y'
f : Y ⟶ Z
⊢ (((λ_ Y).hom ≫ (ρ_ Y).inv) ≫ (f ⊗ 𝟙 (𝟙_ C))) ≫ (ρ_ Z).hom = (λ_ Y).hom ≫ f
Theorem: YoungDiagram.transpose_eq_iff
File: Mathlib/Combinatorics/Young/YoungDiagram.lean

tactic: rw [transpose_eq_iff_eq_transpose]
state_before: μ ν : YoungDiagram
⊢ transpose μ = transpose ν ↔ μ = ν

tactic: simp
state_before: μ ν : YoungDiagram
⊢ μ = transpose (transpose ν) ↔ μ = ν
Theorem: Ordinal.pred_succ
File: Mathlib/SetTheory/Ordinal/Arithmetic.lean

tactic: have h : ∃ a, succ o = succ a := ⟨_, rfl⟩
state_before: α : Type ?u.80689
β : Type ?u.80692
γ : Type ?u.80695
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
⊢ pred (succ o) = o

tactic: simpa only [pred, dif_pos h] using (succ_injective <| Classical.choose_spec h).symm
state_before: α : Type ?u.80689
β : Type ?u.80692
γ : Type ?u.80695
r : α → α → Prop
s : β → β → Prop
t : γ → γ → Prop
o : Ordinal
h : ∃ a, succ o = succ a
⊢ pred (succ o) = o
Theorem: Int.emod_add_ediv'
File: Std/Data/Int/DivMod.lean

tactic: rw [Int.mul_comm]
state_before: m k : Int
⊢ m % k + m / k * k = m

tactic: apply emod_add_ediv
state_before: m k : Int
⊢ m % k + k * (m / k) = m
Theorem: List.tfae_of_cycle
File: Mathlib/Data/List/TFAE.lean

tactic: induction' l with c l IH generalizing a b <;>
  simp only [tfae_cons_cons, tfae_singleton, and_true_iff, chain_cons, Chain.nil] at *
state_before: a b : Prop
l : List Prop
⊢ Chain (fun x x_1 => x → x_1) a (b :: l) → (ilast' b l → a) → TFAE (a :: b :: l)

tactic: rintro ⟨ab, ⟨bc, ch⟩⟩ la
state_before: case cons
a✝ b✝ c : Prop
l : List Prop
a b : Prop
IH : ∀ {a b : Prop}, (a → b) ∧ Chain (fun x x_1 => x → x_1) b l → (ilast' b l → a) → (a ↔ b) ∧ TFAE (b :: l)
⊢ (a → b) ∧ (b → c) ∧ Chain (fun x x_1 => x → x_1) c l → (ilast' b (c :: l) → a) → (a ↔ b) ∧ (b ↔ c) ∧ TFAE (c :: l)

tactic: have := IH ⟨bc, ch⟩ (ab ∘ la)
state_before: case cons.intro.intro
a✝ b✝ c : Prop
l : List Prop
a b : Prop
IH : ∀ {a b : Prop}, (a → b) ∧ Chain (fun x x_1 => x → x_1) b l → (ilast' b l → a) → (a ↔ b) ∧ TFAE (b :: l)
ab : a → b
bc : b → c
ch : Chain (fun x x_1 => x → x_1) c l
la : ilast' b (c :: l) → a
⊢ (a ↔ b) ∧ (b ↔ c) ∧ TFAE (c :: l)

tactic: exact ⟨⟨ab, la ∘ (this.2 c (Mem.head _) _ (ilast'_mem _ _)).1 ∘ bc⟩, this⟩
state_before: case cons.intro.intro
a✝ b✝ c : Prop
l : List Prop
a b : Prop
IH : ∀ {a b : Prop}, (a → b) ∧ Chain (fun x x_1 => x → x_1) b l → (ilast' b l → a) → (a ↔ b) ∧ TFAE (b :: l)
ab : a → b
bc : b → c
ch : Chain (fun x x_1 => x → x_1) c l
la : ilast' b (c :: l) → a
this : (b ↔ c) ∧ TFAE (c :: l)
⊢ (a ↔ b) ∧ (b ↔ c) ∧ TFAE (c :: l)

tactic: intro a b
state_before: case nil
a✝ b✝ a b : Prop
⊢ (a → b) → (ilast' b [] → a) → (a ↔ b)

tactic: exact Iff.intro a b
state_before: case nil
a✝¹ b✝¹ a✝ b✝ : Prop
a : a✝ → b✝
b : ilast' b✝ [] → a✝
⊢ a✝ ↔ b✝
Theorem: MvPolynomial.comp_aeval
File: Mathlib/Data/MvPolynomial/Basic.lean

tactic: ext i
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S₁
p q : MvPolynomial σ R
inst✝³ : Algebra R S₁
inst✝² : CommSemiring S₂
f : σ → S₁
B : Type u_1
inst✝¹ : CommSemiring B
inst✝ : Algebra R B
φ : S₁ →ₐ[R] B
⊢ AlgHom.comp φ (aeval f) = aeval fun i => ↑φ (f i)

tactic: simp
state_before: case hf
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_2
a a' a₁ a₂ : R
e : ℕ
n m : σ
s : σ →₀ ℕ
inst✝⁵ : CommSemiring R
inst✝⁴ : CommSemiring S₁
p q : MvPolynomial σ R
inst✝³ : Algebra R S₁
inst✝² : CommSemiring S₂
f : σ → S₁
B : Type u_1
inst✝¹ : CommSemiring B
inst✝ : Algebra R B
φ : S₁ →ₐ[R] B
i : σ
⊢ ↑(AlgHom.comp φ (aeval f)) (X i) = ↑(aeval fun i => ↑φ (f i)) (X i)
Theorem: integral_eq_zero_of_forall_integral_inner_eq_zero
File: Mathlib/MeasureTheory/Function/L2Space.lean

tactic: specialize hf_int (∫ x, f x ∂μ)
state_before: α : Type u_2
m : MeasurableSpace α
p : ℝ≥0∞
μ : Measure α
E : Type u_1
𝕜 : Type u_3
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
f✝ : α → E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f : α → E
hf : Integrable f
hf_int : ∀ (c : E), (∫ (x : α), inner c (f x) ∂μ) = 0
⊢ (∫ (x : α), f x ∂μ) = 0

tactic: rwa [integral_inner hf, inner_self_eq_zero] at hf_int
state_before: α : Type u_2
m : MeasurableSpace α
p : ℝ≥0∞
μ : Measure α
E : Type u_1
𝕜 : Type u_3
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
f✝ : α → E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f : α → E
hf : Integrable f
hf_int : (∫ (x : α), inner (∫ (x : α), f x ∂μ) (f x) ∂μ) = 0
⊢ (∫ (x : α), f x ∂μ) = 0
Theorem: IsSelfAdjoint.nnnorm_pow_two_pow
File: Mathlib/Analysis/NormedSpace/Star/Basic.lean

tactic: induction' n with k hk
state_before: 𝕜 : Type ?u.92251
E : Type u_1
α : Type ?u.92257
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
n : ℕ
⊢ ‖x ^ 2 ^ n‖₊ = ‖x‖₊ ^ 2 ^ n

tactic: simp only [pow_zero, pow_one, Nat.zero_eq]
state_before: case zero
𝕜 : Type ?u.92251
E : Type u_1
α : Type ?u.92257
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
⊢ ‖x ^ 2 ^ Nat.zero‖₊ = ‖x‖₊ ^ 2 ^ Nat.zero

tactic: rw [pow_succ, pow_mul', sq]
state_before: case succ
𝕜 : Type ?u.92251
E : Type u_1
α : Type ?u.92257
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
k : ℕ
hk : ‖x ^ 2 ^ k‖₊ = ‖x‖₊ ^ 2 ^ k
⊢ ‖x ^ 2 ^ Nat.succ k‖₊ = ‖x‖₊ ^ 2 ^ Nat.succ k

tactic: nth_rw 1 [← selfAdjoint.mem_iff.mp hx]
state_before: case succ
𝕜 : Type ?u.92251
E : Type u_1
α : Type ?u.92257
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
k : ℕ
hk : ‖x ^ 2 ^ k‖₊ = ‖x‖₊ ^ 2 ^ k
⊢ ‖x ^ 2 ^ k * x ^ 2 ^ k‖₊ = ‖x‖₊ ^ (2 * 2 ^ k)

tactic: rw [← star_pow, CstarRing.nnnorm_star_mul_self, ← sq, hk, pow_mul']
state_before: case succ
𝕜 : Type ?u.92251
E : Type u_1
α : Type ?u.92257
inst✝² : NormedRing E
inst✝¹ : StarRing E
inst✝ : CstarRing E
x : E
hx : IsSelfAdjoint x
k : ℕ
hk : ‖x ^ 2 ^ k‖₊ = ‖x‖₊ ^ 2 ^ k
⊢ ‖x⋆ ^ 2 ^ k * x ^ 2 ^ k‖₊ = ‖x‖₊ ^ (2 * 2 ^ k)
Theorem: xor_not_left
File: Mathlib/Logic/Basic.lean

tactic: by_cases a <;> simp [*]
state_before: a b : Prop
⊢ Xor' (¬a) b ↔ (a ↔ b)
Theorem: LieSubalgebra.mem_lieSpan
File: Mathlib/Algebra/Lie/Subalgebra.lean

tactic: change x ∈ (lieSpan R L s : Set L) ↔ _
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
s : Set L
x : L
⊢ x ∈ lieSpan R L s ↔ ∀ (K : LieSubalgebra R L), s ⊆ ↑K → x ∈ K

tactic: erw [sInf_coe]
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
s : Set L
x : L
⊢ x ∈ ↑(lieSpan R L s) ↔ ∀ (K : LieSubalgebra R L), s ⊆ ↑K → x ∈ K

tactic: exact Set.mem_iInter₂
state_before: R : Type u
L : Type v
inst✝⁴ : CommRing R
inst✝³ : LieRing L
inst✝² : LieAlgebra R L
L₂ : Type w
inst✝¹ : LieRing L₂
inst✝ : LieAlgebra R L₂
f : L →ₗ⁅R⁆ L₂
K K' : LieSubalgebra R L
K₂ : LieSubalgebra R L₂
s : Set L
x : L
⊢ (x ∈ ⋂ (s_1 : LieSubalgebra R L) (_ : s_1 ∈ {N | s ⊆ ↑N}), ↑s_1) ↔ ∀ (K : LieSubalgebra R L), s ⊆ ↑K → x ∈ K
Theorem: LinearMap.trace_conj
File: Mathlib/LinearAlgebra/Trace.lean

tactic: rw [trace_mul_comm]
state_before: R : Type u
inst✝⁶ : CommSemiring R
M : Type v
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
ι : Type w
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
κ : Type ?u.265807
inst✝¹ : DecidableEq κ
inst✝ : Fintype κ
b : Basis ι R M
c : Basis κ R M
g : M →ₗ[R] M
f : (M →ₗ[R] M)ˣ
⊢ ↑(trace R M) (↑f * g * ↑f⁻¹) = ↑(trace R M) g

tactic: simp
state_before: R : Type u
inst✝⁶ : CommSemiring R
M : Type v
inst✝⁵ : AddCommMonoid M
inst✝⁴ : Module R M
ι : Type w
inst✝³ : DecidableEq ι
inst✝² : Fintype ι
κ : Type ?u.265807
inst✝¹ : DecidableEq κ
inst✝ : Fintype κ
b : Basis ι R M
c : Basis κ R M
g : M →ₗ[R] M
f : (M →ₗ[R] M)ˣ
⊢ ↑(trace R M) (↑f⁻¹ * (↑f * g)) = ↑(trace R M) g
Theorem: Matrix.diagonal_tsum
File: Mathlib/Topology/Instances/Matrix.lean

tactic: by_cases hf : Summable f
state_before: X : Type u_3
α : Type ?u.78999
l : Type ?u.79002
m : Type ?u.79005
n : Type u_1
p : Type ?u.79011
S : Type ?u.79014
R : Type u_2
m' : l → Type ?u.79022
n' : l → Type ?u.79027
inst✝⁵ : Semiring α
inst✝⁴ : AddCommMonoid R
inst✝³ : TopologicalSpace R
inst✝² : Module α R
inst✝¹ : DecidableEq n
inst✝ : T2Space R
f : X → n → R
⊢ diagonal (∑' (x : X), f x) = ∑' (x : X), diagonal (f x)

tactic: exact hf.hasSum.matrix_diagonal.tsum_eq.symm
state_before: case pos
X : Type u_3
α : Type ?u.78999
l : Type ?u.79002
m : Type ?u.79005
n : Type u_1
p : Type ?u.79011
S : Type ?u.79014
R : Type u_2
m' : l → Type ?u.79022
n' : l → Type ?u.79027
inst✝⁵ : Semiring α
inst✝⁴ : AddCommMonoid R
inst✝³ : TopologicalSpace R
inst✝² : Module α R
inst✝¹ : DecidableEq n
inst✝ : T2Space R
f : X → n → R
hf : Summable f
⊢ diagonal (∑' (x : X), f x) = ∑' (x : X), diagonal (f x)

tactic: have hft := summable_matrix_diagonal.not.mpr hf
state_before: case neg
X : Type u_3
α : Type ?u.78999
l : Type ?u.79002
m : Type ?u.79005
n : Type u_1
p : Type ?u.79011
S : Type ?u.79014
R : Type u_2
m' : l → Type ?u.79022
n' : l → Type ?u.79027
inst✝⁵ : Semiring α
inst✝⁴ : AddCommMonoid R
inst✝³ : TopologicalSpace R
inst✝² : Module α R
inst✝¹ : DecidableEq n
inst✝ : T2Space R
f : X → n → R
hf : ¬Summable f
⊢ diagonal (∑' (x : X), f x) = ∑' (x : X), diagonal (f x)

tactic: rw [tsum_eq_zero_of_not_summable hf, tsum_eq_zero_of_not_summable hft]
state_before: case neg
X : Type u_3
α : Type ?u.78999
l : Type ?u.79002
m : Type ?u.79005
n : Type u_1
p : Type ?u.79011
S : Type ?u.79014
R : Type u_2
m' : l → Type ?u.79022
n' : l → Type ?u.79027
inst✝⁵ : Semiring α
inst✝⁴ : AddCommMonoid R
inst✝³ : TopologicalSpace R
inst✝² : Module α R
inst✝¹ : DecidableEq n
inst✝ : T2Space R
f : X → n → R
hf : ¬Summable f
hft : ¬Summable fun x => diagonal (f x)
⊢ diagonal (∑' (x : X), f x) = ∑' (x : X), diagonal (f x)

tactic: exact diagonal_zero
state_before: case neg
X : Type u_3
α : Type ?u.78999
l : Type ?u.79002
m : Type ?u.79005
n : Type u_1
p : Type ?u.79011
S : Type ?u.79014
R : Type u_2
m' : l → Type ?u.79022
n' : l → Type ?u.79027
inst✝⁵ : Semiring α
inst✝⁴ : AddCommMonoid R
inst✝³ : TopologicalSpace R
inst✝² : Module α R
inst✝¹ : DecidableEq n
inst✝ : T2Space R
f : X → n → R
hf : ¬Summable f
hft : ¬Summable fun x => diagonal (f x)
⊢ diagonal 0 = 0
Theorem: MeasureTheory.L1.SimpleFunc.norm_Integral_le_one
File: Mathlib/MeasureTheory/Integral/Bochner.lean

tactic: rw [one_mul]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.345761
𝕜 : Type ?u.345764
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁸ : NormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
F' : Type ?u.348139
inst✝⁴ : NormedAddCommGroup F'
inst✝³ : NormedSpace ℝ F'
E' : Type ?u.348235
inst✝² : NormedAddCommGroup E'
inst✝¹ : NormedSpace ℝ E'
inst✝ : NormedSpace 𝕜 E'
f : { x // x ∈ simpleFunc E 1 μ }
⊢ ‖↑{
            toAddHom :=
              { toFun := integral,
                map_add' := (_ : ∀ (f g : { x // x ∈ simpleFunc E 1 μ }), integral (f + g) = integral f + integral g) },
            map_smul' := (_ : ∀ (c : ℝ) (f : { x // x ∈ simpleFunc E 1 μ }), integral (c • f) = c • integral f) }
        f‖ ≤
    1 * ‖f‖

tactic: exact norm_integral_le_norm f
state_before: α : Type u_1
E : Type u_2
F : Type ?u.345761
𝕜 : Type ?u.345764
inst✝¹⁰ : NormedAddCommGroup E
inst✝⁹ : NormedAddCommGroup F
m : MeasurableSpace α
μ : Measure α
inst✝⁸ : NormedField 𝕜
inst✝⁷ : NormedSpace 𝕜 E
inst✝⁶ : NormedSpace ℝ E
inst✝⁵ : SMulCommClass ℝ 𝕜 E
F' : Type ?u.348139
inst✝⁴ : NormedAddCommGroup F'
inst✝³ : NormedSpace ℝ F'
E' : Type ?u.348235
inst✝² : NormedAddCommGroup E'
inst✝¹ : NormedSpace ℝ E'
inst✝ : NormedSpace 𝕜 E'
f : { x // x ∈ simpleFunc E 1 μ }
⊢ ‖↑{
            toAddHom :=
              { toFun := integral,
                map_add' := (_ : ∀ (f g : { x // x ∈ simpleFunc E 1 μ }), integral (f + g) = integral f + integral g) },
            map_smul' := (_ : ∀ (c : ℝ) (f : { x // x ∈ simpleFunc E 1 μ }), integral (c • f) = c • integral f) }
        f‖ ≤
    ‖f‖
Theorem: CategoryTheory.flat_of_preservesFiniteLimits
File: Mathlib/CategoryTheory/Functor/Flat.lean

tactic: apply hasFiniteLimits_of_hasFiniteLimits_of_size.{v₁} (StructuredArrow X F)
state_before: C : Type u₁
inst✝³ : Category C
D : Type u₂
inst✝² : Category D
inst✝¹ : HasFiniteLimits C
F : C ⥤ D
inst✝ : PreservesFiniteLimits F
X : D
⊢ HasFiniteLimits (StructuredArrow X F)

tactic: intro J sJ fJ
state_before: C : Type u₁
inst✝³ : Category C
D : Type u₂
inst✝² : Category D
inst✝¹ : HasFiniteLimits C
F : C ⥤ D
inst✝ : PreservesFiniteLimits F
X : D
⊢ ∀ (J : Type v₁) {𝒥 : SmallCategory J}, FinCategory J → HasLimitsOfShape J (StructuredArrow X F)

tactic: constructor
state_before: C : Type u₁
inst✝³ : Category C
D : Type u₂
inst✝² : Category D
inst✝¹ : HasFiniteLimits C
F : C ⥤ D
inst✝ : PreservesFiniteLimits F
X : D
J : Type v₁
sJ : SmallCategory J
fJ : FinCategory J
⊢ HasLimitsOfShape J (StructuredArrow X F)

tactic: infer_instance
state_before: case has_limit
C : Type u₁
inst✝³ : Category C
D : Type u₂
inst✝² : Category D
inst✝¹ : HasFiniteLimits C
F : C ⥤ D
inst✝ : PreservesFiniteLimits F
X : D
J : Type v₁
sJ : SmallCategory J
fJ : FinCategory J
⊢ autoParam (∀ (F_1 : J ⥤ StructuredArrow X F), HasLimit F_1) _auto✝
Theorem: Behrend.ceil_lt_mul
File: Mathlib/Combinatorics/Additive/Behrend.lean

tactic: refine' (ceil_lt_add_one <| hx.trans' <| by norm_num).trans_le _
state_before: α : Type ?u.699750
β : Type ?u.699753
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ ↑⌈x⌉₊ < 1.38 * x

tactic: rw [← le_sub_iff_add_le', ← sub_one_mul]
state_before: α : Type ?u.699750
β : Type ?u.699753
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ x + 1 ≤ 1.38 * x

tactic: have : (1.38 : ℝ) = 69 / 50 := by norm_num
state_before: α : Type ?u.699750
β : Type ?u.699753
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ 1 ≤ (1.38 - 1) * x

tactic: rwa [this, show (69 / 50 - 1 : ℝ) = (50 / 19)⁻¹ by norm_num1, ←
  div_eq_inv_mul, one_le_div]
state_before: α : Type ?u.699750
β : Type ?u.699753
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
this : 1.38 = 69 / 50
⊢ 1 ≤ (1.38 - 1) * x

tactic: norm_num1
state_before: α : Type ?u.699750
β : Type ?u.699753
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
this : 1.38 = 69 / 50
⊢ 0 < 50 / 19

tactic: norm_num
state_before: α : Type ?u.699750
β : Type ?u.699753
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ 0 ≤ 50 / 19

tactic: norm_num
state_before: α : Type ?u.699750
β : Type ?u.699753
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
⊢ 1.38 = 69 / 50

tactic: norm_num1
state_before: α : Type ?u.699750
β : Type ?u.699753
n d k N : ℕ
x✝ : Fin n → ℕ
x : ℝ
hx : 50 / 19 ≤ x
this : 1.38 = 69 / 50
⊢ 69 / 50 - 1 = (50 / 19)⁻¹
Theorem: List.head?_lookupAll
File: Mathlib/Data/List/Sigma.lean

tactic: simp
state_before: α : Type u
β : α → Type v
l l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
⊢ head? (lookupAll a []) = dlookup a []

tactic: by_cases h : a = a'
state_before: α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b : β a'
l : List (Sigma β)
⊢ head? (lookupAll a ({ fst := a', snd := b } :: l)) = dlookup a ({ fst := a', snd := b } :: l)

tactic: . subst h; simp
state_before: case pos
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b : β a'
l : List (Sigma β)
h : a = a'
⊢ head? (lookupAll a ({ fst := a', snd := b } :: l)) = dlookup a ({ fst := a', snd := b } :: l)

case neg
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b : β a'
l : List (Sigma β)
h : ¬a = a'
⊢ head? (lookupAll a ({ fst := a', snd := b } :: l)) = dlookup a ({ fst := a', snd := b } :: l)

tactic: . rw [lookupAll_cons_ne, dlookup_cons_ne, head?_lookupAll a l] <;> assumption
state_before: case neg
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b : β a'
l : List (Sigma β)
h : ¬a = a'
⊢ head? (lookupAll a ({ fst := a', snd := b } :: l)) = dlookup a ({ fst := a', snd := b } :: l)

tactic: subst h
state_before: case pos
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b : β a'
l : List (Sigma β)
h : a = a'
⊢ head? (lookupAll a ({ fst := a', snd := b } :: l)) = dlookup a ({ fst := a', snd := b } :: l)

tactic: simp
state_before: case pos
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a : α
l : List (Sigma β)
b : β a
⊢ head? (lookupAll a ({ fst := a, snd := b } :: l)) = dlookup a ({ fst := a, snd := b } :: l)

tactic: rw [lookupAll_cons_ne, dlookup_cons_ne, head?_lookupAll a l] <;> assumption
state_before: case neg
α : Type u
β : α → Type v
l✝ l₁ l₂ : List (Sigma β)
inst✝ : DecidableEq α
a a' : α
b : β a'
l : List (Sigma β)
h : ¬a = a'
⊢ head? (lookupAll a ({ fst := a', snd := b } :: l)) = dlookup a ({ fst := a', snd := b } :: l)
Theorem: SimpleGraph.deleteEdges_eq_inter_edgeSet
File: Mathlib/Combinatorics/SimpleGraph/Basic.lean

tactic: ext
state_before: ι : Sort ?u.159844
𝕜 : Type ?u.159847
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
s : Set (Sym2 V)
⊢ deleteEdges G s = deleteEdges G (s ∩ edgeSet G)

tactic: simp (config := { contextual := true }) [imp_false]
state_before: case Adj.h.h.a
ι : Sort ?u.159844
𝕜 : Type ?u.159847
V : Type u
W : Type v
X : Type w
G : SimpleGraph V
G' : SimpleGraph W
a b c u v w : V
e : Sym2 V
s : Set (Sym2 V)
x✝¹ x✝ : V
⊢ Adj (deleteEdges G s) x✝¹ x✝ ↔ Adj (deleteEdges G (s ∩ edgeSet G)) x✝¹ x✝
Theorem: Polynomial.Chebyshev.U_real_cos
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev.lean

tactic: exact_mod_cast U_complex_cos θ n
state_before: R : Type ?u.112343
A : Type ?u.112346
inst✝² : CommRing R
inst✝¹ : CommRing A
inst✝ : Algebra R A
θ : ℝ
n : ℕ
⊢ eval (cos θ) (U ℝ n) * sin θ = sin ((↑n + 1) * θ)
Theorem: Matrix.zpow_ne_zero_of_isUnit_det
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: have := ha.det_zpow z
state_before: n' : Type u_1
inst✝⁴ : DecidableEq n'
inst✝³ : Fintype n'
R : Type u_2
inst✝² : CommRing R
inst✝¹ : Nonempty n'
inst✝ : Nontrivial R
A : M
ha : IsUnit (det A)
z : ℤ
⊢ A ^ z ≠ 0

tactic: revert this
state_before: n' : Type u_1
inst✝⁴ : DecidableEq n'
inst✝³ : Fintype n'
R : Type u_2
inst✝² : CommRing R
inst✝¹ : Nonempty n'
inst✝ : Nontrivial R
A : M
ha : IsUnit (det A)
z : ℤ
this : IsUnit (det (A ^ z))
⊢ A ^ z ≠ 0

tactic: contrapose!
state_before: n' : Type u_1
inst✝⁴ : DecidableEq n'
inst✝³ : Fintype n'
R : Type u_2
inst✝² : CommRing R
inst✝¹ : Nonempty n'
inst✝ : Nontrivial R
A : M
ha : IsUnit (det A)
z : ℤ
⊢ IsUnit (det (A ^ z)) → A ^ z ≠ 0

tactic: rw [ne_eq, not_not]
state_before: n' : Type u_1
inst✝⁴ : DecidableEq n'
inst✝³ : Fintype n'
R : Type u_2
inst✝² : CommRing R
inst✝¹ : Nonempty n'
inst✝ : Nontrivial R
A : M
ha : IsUnit (det A)
z : ℤ
⊢ ¬A ^ z ≠ 0 → ¬IsUnit (det (A ^ z))

tactic: intro this
state_before: n' : Type u_1
inst✝⁴ : DecidableEq n'
inst✝³ : Fintype n'
R : Type u_2
inst✝² : CommRing R
inst✝¹ : Nonempty n'
inst✝ : Nontrivial R
A : M
ha : IsUnit (det A)
z : ℤ
⊢ A ^ z = 0 → ¬IsUnit (det (A ^ z))

tactic: rw [this, det_zero ‹_›]
state_before: n' : Type u_1
inst✝⁴ : DecidableEq n'
inst✝³ : Fintype n'
R : Type u_2
inst✝² : CommRing R
inst✝¹ : Nonempty n'
inst✝ : Nontrivial R
A : M
ha : IsUnit (det A)
z : ℤ
this : A ^ z = 0
⊢ ¬IsUnit (det (A ^ z))

tactic: exact not_isUnit_zero
state_before: n' : Type u_1
inst✝⁴ : DecidableEq n'
inst✝³ : Fintype n'
R : Type u_2
inst✝² : CommRing R
inst✝¹ : Nonempty n'
inst✝ : Nontrivial R
A : M
ha : IsUnit (det A)
z : ℤ
this : A ^ z = 0
⊢ ¬IsUnit 0