tasksource/leandojo huggingface dataset:
Theorem: List.revzip_sublists'
File: Mathlib/Data/List/Sublists.lean

tactic: rw [revzip]
state_before: α : Type u
β : Type v
γ : Type w
l : List α
⊢ ∀ (l₁ l₂ : List α), (l₁, l₂) ∈ revzip (sublists' l) → l₁ ++ l₂ ~ l

tactic: induction' l with a l IH <;> intro l₁ l₂ h
state_before: α : Type u
β : Type v
γ : Type w
l : List α
⊢ ∀ (l₁ l₂ : List α), (l₁, l₂) ∈ zip (sublists' l) (reverse (sublists' l)) → l₁ ++ l₂ ~ l

tactic: simp at h
state_before: case nil
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
h : (l₁, l₂) ∈ zip (sublists' []) (reverse (sublists' []))
⊢ l₁ ++ l₂ ~ []

tactic: simp [h]
state_before: case nil
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
h : l₁ = [] ∧ l₂ = []
⊢ l₁ ++ l₂ ~ []

tactic: rw [sublists'_cons, reverse_append, zip_append, ← map_reverse, zip_map_right, zip_map_left] at *
  <;> [simp at h; simp]
state_before: case cons
α : Type u
β : Type v
γ : Type w
a : α
l : List α
IH : ∀ (l₁ l₂ : List α), (l₁, l₂) ∈ zip (sublists' l) (reverse (sublists' l)) → l₁ ++ l₂ ~ l
l₁ l₂ : List α
h : (l₁, l₂) ∈ zip (sublists' (a :: l)) (reverse (sublists' (a :: l)))
⊢ l₁ ++ l₂ ~ a :: l

tactic: rcases h with (⟨l₁, l₂', h, rfl, rfl⟩ | ⟨l₁', h, rfl⟩)
state_before: case cons
α : Type u
β : Type v
γ : Type w
a : α
l : List α
IH : ∀ (l₁ l₂ : List α), (l₁, l₂) ∈ zip (sublists' l) (reverse (sublists' l)) → l₁ ++ l₂ ~ l
l₁ l₂ : List α
h :
  (∃ a_1 b, (a_1, b) ∈ zip (sublists' l) (reverse (sublists' l)) ∧ a_1 = l₁ ∧ a :: b = l₂) ∨
    ∃ a_1, (a_1, l₂) ∈ zip (sublists' l) (reverse (sublists' l)) ∧ a :: a_1 = l₁
⊢ l₁ ++ l₂ ~ a :: l

tactic: exact perm_middle.trans ((IH _ _ h).cons _)
state_before: case cons.inl.intro.intro.intro.intro
α : Type u
β : Type v
γ : Type w
a : α
l : List α
IH : ∀ (l₁ l₂ : List α), (l₁, l₂) ∈ zip (sublists' l) (reverse (sublists' l)) → l₁ ++ l₂ ~ l
l₁ l₂' : List α
h : (l₁, l₂') ∈ zip (sublists' l) (reverse (sublists' l))
⊢ l₁ ++ a :: l₂' ~ a :: l

tactic: exact (IH _ _ h).cons _
state_before: case cons.inr.intro.intro
α : Type u
β : Type v
γ : Type w
a : α
l : List α
IH : ∀ (l₁ l₂ : List α), (l₁, l₂) ∈ zip (sublists' l) (reverse (sublists' l)) → l₁ ++ l₂ ~ l
l₂ l₁' : List α
h : (l₁', l₂) ∈ zip (sublists' l) (reverse (sublists' l))
⊢ a :: l₁' ++ l₂ ~ a :: l
Theorem: BoxIntegral.integralSum_neg
File: Mathlib/Analysis/BoxIntegral/Basic.lean

tactic: simp only [integralSum, Pi.neg_apply, (vol _).map_neg, Finset.sum_neg_distrib]
state_before: ι : Type u
E : Type v
F : Type w
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace ℝ E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace ℝ F
I J : Box ι
π✝ : TaggedPrepartition I
f : (ι → ℝ) → E
vol : ι →ᵇᵃ[⊤] E →L[ℝ] F
π : TaggedPrepartition I
⊢ integralSum (-f) vol π = -integralSum f vol π
Theorem: Ideal.span_eq_top_iff_finite
File: Mathlib/RingTheory/Ideal/Basic.lean

tactic: simp_rw [eq_top_iff_one]
state_before: α : Type u
β : Type v
inst✝ : Semiring α
I : Ideal α
a b : α
s : Set α
⊢ span s = ⊤ ↔ ∃ s', ↑s' ⊆ s ∧ span ↑s' = ⊤

tactic: exact ⟨Submodule.mem_span_finite_of_mem_span, fun ⟨s', h₁, h₂⟩ => span_mono h₁ h₂⟩
state_before: α : Type u
β : Type v
inst✝ : Semiring α
I : Ideal α
a b : α
s : Set α
⊢ 1 ∈ span s ↔ ∃ s', ↑s' ⊆ s ∧ 1 ∈ span ↑s'
Theorem: id_nullhomotopic
File: Mathlib/Topology/Homotopy/Contractible.lean

tactic: obtain ⟨hv⟩ := ContractibleSpace.hequiv_unit X
state_before: X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : ContractibleSpace X
⊢ Nullhomotopic (ContinuousMap.id X)

tactic: use hv.invFun ()
state_before: case intro
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : ContractibleSpace X
hv : X ≃ₕ Unit
⊢ Nullhomotopic (ContinuousMap.id X)

tactic: convert hv.left_inv.symm
state_before: case intro
X : Type u_1
inst✝¹ : TopologicalSpace X
inst✝ : ContractibleSpace X
hv : X ≃ₕ Unit
⊢ Homotopic (ContinuousMap.id X) (const X (↑hv.invFun ()))
Theorem: BilinForm.isAdjointPair_zero
File: Mathlib/LinearAlgebra/BilinearForm.lean

tactic: simp only [BilinForm.zero_left, BilinForm.zero_right, LinearMap.zero_apply]
state_before: R : Type u_1
M : Type u_2
inst✝²⁰ : Semiring R
inst✝¹⁹ : AddCommMonoid M
inst✝¹⁸ : Module R M
R₁ : Type ?u.1026415
M₁ : Type ?u.1026418
inst✝¹⁷ : Ring R₁
inst✝¹⁶ : AddCommGroup M₁
inst✝¹⁵ : Module R₁ M₁
R₂ : Type ?u.1027027
M₂ : Type ?u.1027030
inst✝¹⁴ : CommSemiring R₂
inst✝¹³ : AddCommMonoid M₂
inst✝¹² : Module R₂ M₂
R₃ : Type ?u.1027217
M₃ : Type ?u.1027220
inst✝¹¹ : CommRing R₃
inst✝¹⁰ : AddCommGroup M₃
inst✝⁹ : Module R₃ M₃
V : Type ?u.1027808
K : Type ?u.1027811
inst✝⁸ : Field K
inst✝⁷ : AddCommGroup V
inst✝⁶ : Module K V
B : BilinForm R M
B₁ : BilinForm R₁ M₁
B₂ : BilinForm R₂ M₂
M₂' : Type ?u.1029025
M₂'' : Type ?u.1029028
inst✝⁵ : AddCommMonoid M₂'
inst✝⁴ : AddCommMonoid M₂''
inst✝³ : Module R₂ M₂'
inst✝² : Module R₂ M₂''
F : BilinForm R M
M' : Type u_3
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
B' : BilinForm R M'
f f' : M →ₗ[R] M'
g g' : M' →ₗ[R] M
x : M
y : M'
⊢ bilin B' (↑0 x) y = bilin B x (↑0 y)
Theorem: bihimp_bot
File: Mathlib/Order/SymmDiff.lean

tactic: simp [bihimp]
state_before: ι : Type ?u.56692
α : Type u_1
β : Type ?u.56698
π : ι → Type ?u.56703
inst✝ : HeytingAlgebra α
a : α
⊢ a ⇔ ⊥ = aᶜ
Theorem: Submodule.triorthogonal_eq_orthogonal
File: Mathlib/Analysis/InnerProductSpace/Projection.lean

tactic: rw [Kᗮ.orthogonal_orthogonal_eq_closure]
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.883149
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : CompleteSpace E
⊢ Kᗮᗮᗮ = Kᗮ

tactic: exact K.isClosed_orthogonal.submodule_topologicalClosure_eq
state_before: 𝕜 : Type u_2
E : Type u_1
F : Type ?u.883149
inst✝⁵ : IsROrC 𝕜
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedAddCommGroup F
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : InnerProductSpace ℝ F
K : Submodule 𝕜 E
inst✝ : CompleteSpace E
⊢ topologicalClosure Kᗮ = Kᗮ
Theorem: Polynomial.coe_monomial
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: ext
state_before: σ : Type ?u.4303706
R : Type u_1
inst✝ : CommSemiring R
φ ψ : R[X]
n : ℕ
a : R
⊢ ↑(↑(monomial n) a) = ↑(PowerSeries.monomial R n) a

tactic: simp [coeff_coe, PowerSeries.coeff_monomial, Polynomial.coeff_monomial, eq_comm]
state_before: case h
σ : Type ?u.4303706
R : Type u_1
inst✝ : CommSemiring R
φ ψ : R[X]
n : ℕ
a : R
n✝ : ℕ
⊢ ↑(PowerSeries.coeff R n✝) ↑(↑(monomial n) a) = ↑(PowerSeries.coeff R n✝) (↑(PowerSeries.monomial R n) a)
Theorem: MeasureTheory.Measure.restrict_restrict_of_subset
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: ext1 u hu
state_before: α : Type u_1
β : Type ?u.290160
γ : Type ?u.290163
δ : Type ?u.290166
ι : Type ?u.290169
R : Type ?u.290172
R' : Type ?u.290175
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
⊢ restrict (restrict μ t) s = restrict μ s

tactic: rw [restrict_apply hu, restrict_apply hu, restrict_eq_self]
state_before: case h
α : Type u_1
β : Type ?u.290160
γ : Type ?u.290163
δ : Type ?u.290166
ι : Type ?u.290169
R : Type ?u.290172
R' : Type ?u.290175
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
u : Set α
hu : MeasurableSet u
⊢ ↑↑(restrict (restrict μ t) s) u = ↑↑(restrict μ s) u

tactic: exact (inter_subset_right _ _).trans h
state_before: case h.h
α : Type u_1
β : Type ?u.290160
γ : Type ?u.290163
δ : Type ?u.290166
ι : Type ?u.290169
R : Type ?u.290172
R' : Type ?u.290175
m0 : MeasurableSpace α
inst✝¹ : MeasurableSpace β
inst✝ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
h : s ⊆ t
u : Set α
hu : MeasurableSet u
⊢ u ∩ s ⊆ t
Theorem: idealFactorsEquivOfQuotEquiv_is_dvd_iso
File: Mathlib/RingTheory/DedekindDomain/Ideal.lean

tactic: suffices
  idealFactorsEquivOfQuotEquiv f ⟨M, hM⟩ ≤ idealFactorsEquivOfQuotEquiv f ⟨L, hL⟩ ↔
    (⟨M, hM⟩ : { p : Ideal R | p ∣ I }) ≤ ⟨L, hL⟩
  by rw [dvd_iff_le, dvd_iff_le, Subtype.coe_le_coe, this, Subtype.mk_le_mk]
state_before: R : Type u_1
A : Type u_2
K : Type ?u.1117270
inst✝⁹ : CommRing R
inst✝⁸ : CommRing A
inst✝⁷ : Field K
inst✝⁶ : IsDomain A
inst✝⁵ : IsDedekindDomain A
I : Ideal R
J : Ideal A
B : Type ?u.1117807
inst✝⁴ : CommRing B
inst✝³ : IsDomain B
inst✝² : IsDedekindDomain B
L✝ : Ideal B
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
f : R ⧸ I ≃+* A ⧸ J
L M : Ideal R
hL : L ∣ I
hM : M ∣ I
⊢ ↑(↑(idealFactorsEquivOfQuotEquiv f) { val := L, property := hL }) ∣
      ↑(↑(idealFactorsEquivOfQuotEquiv f) { val := M, property := hM }) ↔
    L ∣ M

tactic: exact (idealFactorsEquivOfQuotEquiv f).le_iff_le
state_before: R : Type u_1
A : Type u_2
K : Type ?u.1117270
inst✝⁹ : CommRing R
inst✝⁸ : CommRing A
inst✝⁷ : Field K
inst✝⁶ : IsDomain A
inst✝⁵ : IsDedekindDomain A
I : Ideal R
J : Ideal A
B : Type ?u.1117807
inst✝⁴ : CommRing B
inst✝³ : IsDomain B
inst✝² : IsDedekindDomain B
L✝ : Ideal B
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
f : R ⧸ I ≃+* A ⧸ J
L M : Ideal R
hL : L ∣ I
hM : M ∣ I
⊢ ↑(idealFactorsEquivOfQuotEquiv f) { val := M, property := hM } ≤
      ↑(idealFactorsEquivOfQuotEquiv f) { val := L, property := hL } ↔
    { val := M, property := hM } ≤ { val := L, property := hL }

tactic: rw [dvd_iff_le, dvd_iff_le, Subtype.coe_le_coe, this, Subtype.mk_le_mk]
state_before: R : Type u_1
A : Type u_2
K : Type ?u.1117270
inst✝⁹ : CommRing R
inst✝⁸ : CommRing A
inst✝⁷ : Field K
inst✝⁶ : IsDomain A
inst✝⁵ : IsDedekindDomain A
I : Ideal R
J : Ideal A
B : Type ?u.1117807
inst✝⁴ : CommRing B
inst✝³ : IsDomain B
inst✝² : IsDedekindDomain B
L✝ : Ideal B
inst✝¹ : IsDomain R
inst✝ : IsDedekindDomain R
f : R ⧸ I ≃+* A ⧸ J
L M : Ideal R
hL : L ∣ I
hM : M ∣ I
this :
  ↑(idealFactorsEquivOfQuotEquiv f) { val := M, property := hM } ≤
      ↑(idealFactorsEquivOfQuotEquiv f) { val := L, property := hL } ↔
    { val := M, property := hM } ≤ { val := L, property := hL }
⊢ ↑(↑(idealFactorsEquivOfQuotEquiv f) { val := L, property := hL }) ∣
      ↑(↑(idealFactorsEquivOfQuotEquiv f) { val := M, property := hM }) ↔
    L ∣ M
Theorem: AffineIndependent.range
File: Mathlib/LinearAlgebra/AffineSpace/Independent.lean

tactic: let f : Set.range p → ι := fun x => x.property.choose
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
ha : AffineIndependent k p
⊢ AffineIndependent k fun x => ↑x

tactic: have hf : ∀ x, p (f x) = x := fun x => x.property.choose_spec
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
ha : AffineIndependent k p
f : ↑(Set.range p) → ι := fun x => Exists.choose (_ : ↑x ∈ Set.range p)
⊢ AffineIndependent k fun x => ↑x

tactic: let fe : Set.range p ↪ ι := ⟨f, fun x₁ x₂ he => Subtype.ext (hf x₁ ▸ hf x₂ ▸ he ▸ rfl)⟩
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
ha : AffineIndependent k p
f : ↑(Set.range p) → ι := fun x => Exists.choose (_ : ↑x ∈ Set.range p)
hf : ∀ (x : ↑(Set.range p)), p (f x) = ↑x
⊢ AffineIndependent k fun x => ↑x

tactic: convert ha.comp_embedding fe
state_before: k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
ha : AffineIndependent k p
f : ↑(Set.range p) → ι := fun x => Exists.choose (_ : ↑x ∈ Set.range p)
hf : ∀ (x : ↑(Set.range p)), p (f x) = ↑x
fe : ↑(Set.range p) ↪ ι := { toFun := f, inj' := (_ : ∀ (x₁ x₂ : ↑(Set.range p)), f x₁ = f x₂ → x₁ = x₂) }
⊢ AffineIndependent k fun x => ↑x

tactic: ext
state_before: case h.e'_9.h.h.e
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
ha : AffineIndependent k p
f : ↑(Set.range p) → ι := fun x => Exists.choose (_ : ↑x ∈ Set.range p)
hf : ∀ (x : ↑(Set.range p)), p (f x) = ↑x
fe : ↑(Set.range p) ↪ ι := { toFun := f, inj' := (_ : ∀ (x₁ x₂ : ↑(Set.range p)), f x₁ = f x₂ → x₁ = x₂) }
x✝ : ↑(Set.range p)
⊢ Subtype.val = p ∘ ↑fe

tactic: simp [hf]
state_before: case h.e'_9.h.h.e.h
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : Ring k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_4
p : ι → P
ha : AffineIndependent k p
f : ↑(Set.range p) → ι := fun x => Exists.choose (_ : ↑x ∈ Set.range p)
hf : ∀ (x : ↑(Set.range p)), p (f x) = ↑x
fe : ↑(Set.range p) ↪ ι := { toFun := f, inj' := (_ : ∀ (x₁ x₂ : ↑(Set.range p)), f x₁ = f x₂ → x₁ = x₂) }
x✝¹ : ↑(Set.range p)
x✝ : { x // x ∈ Set.range p }
⊢ ↑x✝ = (p ∘ ↑fe) x✝
Theorem: Finset.card_le_card_of_inj_on
File: Mathlib/Data/Finset/Card.lean

tactic: classical calc
    s.card = (s.image f).card := (card_image_of_injOn f_inj).symm
    _ ≤ t.card := card_le_of_subset <| image_subset_iff.2 hf
state_before: α : Type u_2
β : Type u_1
s t✝ : Finset α
f✝ : α → β
n : ℕ
t : Finset β
f : α → β
hf : ∀ (a : α), a ∈ s → f a ∈ t
f_inj : ∀ (a₁ : α), a₁ ∈ s → ∀ (a₂ : α), a₂ ∈ s → f a₁ = f a₂ → a₁ = a₂
⊢ card s ≤ card t

tactic: calc
s.card = (s.image f).card := (card_image_of_injOn f_inj).symm
_ ≤ t.card := card_le_of_subset <| image_subset_iff.2 hf
state_before: α : Type u_2
β : Type u_1
s t✝ : Finset α
f✝ : α → β
n : ℕ
t : Finset β
f : α → β
hf : ∀ (a : α), a ∈ s → f a ∈ t
f_inj : ∀ (a₁ : α), a₁ ∈ s → ∀ (a₂ : α), a₂ ∈ s → f a₁ = f a₂ → a₁ = a₂
⊢ card s ≤ card t
Theorem: EuclideanGeometry.dist_inversion_center
File: Mathlib/Geometry/Euclidean/Inversion.lean

tactic: rcases eq_or_ne x c with (rfl | hx)
state_before: V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
a b c✝ d x✝ y z : P
R✝ : ℝ
c x : P
R : ℝ
⊢ dist (inversion c R x) c = R ^ 2 / dist x c

tactic: have : dist x c ≠ 0 := dist_ne_zero.2 hx
state_before: case inr
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
a b c✝ d x✝ y z : P
R✝ : ℝ
c x : P
R : ℝ
hx : x ≠ c
⊢ dist (inversion c R x) c = R ^ 2 / dist x c

tactic: field_simp [inversion, norm_smul, abs_div, ← dist_eq_norm_vsub, sq, mul_assoc]
state_before: case inr
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
a b c✝ d x✝ y z : P
R✝ : ℝ
c x : P
R : ℝ
hx : x ≠ c
this : dist x c ≠ 0
⊢ dist (inversion c R x) c = R ^ 2 / dist x c

tactic: simp
state_before: case inl
V : Type u_2
P : Type u_1
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
a b c d x✝ y z : P
R✝ : ℝ
x : P
R : ℝ
⊢ dist (inversion x R x) x = R ^ 2 / dist x x
Theorem: Con.div
File: Mathlib/GroupTheory/Congruence.lean

tactic: simpa only [div_eq_mul_inv] using c.mul h1 (c.inv h2)
state_before: M : Type u_1
N : Type ?u.98980
P : Type ?u.98983
inst✝² : Group M
inst✝¹ : Group N
inst✝ : Group P
c : Con M
w x y z : M
h1 : ↑c w x
h2 : ↑c y z
⊢ ↑c (w / y) (x / z)
Theorem: Matrix.blockDiagonal'_conjTranspose
File: Mathlib/Data/Matrix/Block.lean

tactic: simp only [conjTranspose, blockDiagonal'_transpose]
state_before: l : Type ?u.201579
m : Type ?u.201582
n : Type ?u.201585
o : Type u_4
p : Type ?u.201591
q : Type ?u.201594
m' : o → Type u_2
n' : o → Type u_3
p' : o → Type ?u.201609
R : Type ?u.201612
S : Type ?u.201615
α✝ : Type ?u.201618
β : Type ?u.201621
inst✝⁴ : DecidableEq o
inst✝³ : Zero α✝
inst✝² : Zero β
α : Type u_1
inst✝¹ : AddMonoid α
inst✝ : StarAddMonoid α
M : (i : o) → Matrix (m' i) (n' i) α
⊢ (blockDiagonal' M)ᴴ = blockDiagonal' fun k => (M k)ᴴ

tactic: exact blockDiagonal'_map _ star (star_zero α)
state_before: l : Type ?u.201579
m : Type ?u.201582
n : Type ?u.201585
o : Type u_4
p : Type ?u.201591
q : Type ?u.201594
m' : o → Type u_2
n' : o → Type u_3
p' : o → Type ?u.201609
R : Type ?u.201612
S : Type ?u.201615
α✝ : Type ?u.201618
β : Type ?u.201621
inst✝⁴ : DecidableEq o
inst✝³ : Zero α✝
inst✝² : Zero β
α : Type u_1
inst✝¹ : AddMonoid α
inst✝ : StarAddMonoid α
M : (i : o) → Matrix (m' i) (n' i) α
⊢ map (blockDiagonal' fun k => (M k)ᵀ) star = blockDiagonal' fun k => map (M k)ᵀ star
Theorem: TensorProduct.map_add_right
File: Mathlib/LinearAlgebra/TensorProduct.lean

tactic: ext
state_before: R : Type u_1
inst✝¹⁸ : CommSemiring R
R' : Type ?u.989827
inst✝¹⁷ : Monoid R'
R'' : Type ?u.989833
inst✝¹⁶ : Semiring R''
M : Type u_2
N : Type u_4
P : Type u_3
Q : Type u_5
S : Type ?u.989851
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : AddCommMonoid N
inst✝¹³ : AddCommMonoid P
inst✝¹² : AddCommMonoid Q
inst✝¹¹ : AddCommMonoid S
inst✝¹⁰ : Module R M
inst✝⁹ : Module R N
inst✝⁸ : Module R P
inst✝⁷ : Module R Q
inst✝⁶ : Module R S
inst✝⁵ : DistribMulAction R' M
inst✝⁴ : Module R'' M
P' : Type ?u.990978
Q' : Type ?u.990981
inst✝³ : AddCommMonoid P'
inst✝² : Module R P'
inst✝¹ : AddCommMonoid Q'
inst✝ : Module R Q'
f : M →ₗ[R] P
g₁ g₂ : N →ₗ[R] Q
⊢ map f (g₁ + g₂) = map f g₁ + map f g₂

tactic: simp only [tmul_add, compr₂_apply, mk_apply, map_tmul, add_apply]
state_before: case H.h.h
R : Type u_1
inst✝¹⁸ : CommSemiring R
R' : Type ?u.989827
inst✝¹⁷ : Monoid R'
R'' : Type ?u.989833
inst✝¹⁶ : Semiring R''
M : Type u_2
N : Type u_4
P : Type u_3
Q : Type u_5
S : Type ?u.989851
inst✝¹⁵ : AddCommMonoid M
inst✝¹⁴ : AddCommMonoid N
inst✝¹³ : AddCommMonoid P
inst✝¹² : AddCommMonoid Q
inst✝¹¹ : AddCommMonoid S
inst✝¹⁰ : Module R M
inst✝⁹ : Module R N
inst✝⁸ : Module R P
inst✝⁷ : Module R Q
inst✝⁶ : Module R S
inst✝⁵ : DistribMulAction R' M
inst✝⁴ : Module R'' M
P' : Type ?u.990978
Q' : Type ?u.990981
inst✝³ : AddCommMonoid P'
inst✝² : Module R P'
inst✝¹ : AddCommMonoid Q'
inst✝ : Module R Q'
f : M →ₗ[R] P
g₁ g₂ : N →ₗ[R] Q
x✝¹ : M
x✝ : N
⊢ ↑(↑(compr₂ (mk R M N) (map f (g₁ + g₂))) x✝¹) x✝ = ↑(↑(compr₂ (mk R M N) (map f g₁ + map f g₂)) x✝¹) x✝
Theorem: Complex.cos_two_mul'
File: Mathlib/Data/Complex/Exponential.lean

tactic: rw [two_mul, cos_add, ← sq, ← sq]
state_before: x y : ℂ
⊢ cos (2 * x) = cos x ^ 2 - sin x ^ 2
Theorem: εNFA.evalFrom_append_singleton
File: Mathlib/Computability/EpsilonNFA.lean

tactic: rw [evalFrom, List.foldl_append, List.foldl_cons, List.foldl_nil]
state_before: α : Type u
σ σ' : Type v
M : εNFA α σ
S✝ : Set σ
x✝ : List α
s : σ
a✝ : α
S : Set σ
x : List α
a : α
⊢ evalFrom M S (x ++ [a]) = stepSet M (evalFrom M S x) a
Theorem: MeasureTheory.ae_restrict_uIoc_eq
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: simp only [uIoc_eq_union, ae_restrict_union_eq]
state_before: α : Type u_1
β : Type ?u.565282
γ : Type ?u.565285
δ : Type ?u.565288
ι : Type ?u.565291
R : Type ?u.565294
R' : Type ?u.565297
m0 : MeasurableSpace α
inst✝² : MeasurableSpace β
inst✝¹ : MeasurableSpace γ
μ μ₁ μ₂ μ₃ ν ν' ν₁ ν₂ : Measure α
s s' t : Set α
inst✝ : LinearOrder α
a b : α
⊢ ae (Measure.restrict μ (Ι a b)) = ae (Measure.restrict μ (Ioc a b)) ⊔ ae (Measure.restrict μ (Ioc b a))
Theorem: AlternatingMap.coe_alternatization
File: Mathlib/LinearAlgebra/Alternating.lean

tactic: apply AlternatingMap.coe_injective
state_before: R : Type u_2
inst✝¹² : Semiring R
M : Type u_3
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : Module R M
N : Type ?u.719894
inst✝⁹ : AddCommMonoid N
inst✝⁸ : Module R N
P : Type ?u.719924
inst✝⁷ : AddCommMonoid P
inst✝⁶ : Module R P
M' : Type ?u.719954
inst✝⁵ : AddCommGroup M'
inst✝⁴ : Module R M'
N' : Type u_4
inst✝³ : AddCommGroup N'
inst✝² : Module R N'
ι : Type u_1
ι' : Type ?u.720733
ι'' : Type ?u.720736
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
a : AlternatingMap R M N' ι
⊢ ↑MultilinearMap.alternatization ↑a = Nat.factorial (Fintype.card ι) • a

tactic: simp_rw [MultilinearMap.alternatization_def, ← coe_domDomCongr, domDomCongr_perm, coe_smul,
  smul_smul, Int.units_mul_self, one_smul, Finset.sum_const, Finset.card_univ, Fintype.card_perm,
  ← coe_multilinearMap, coe_smul]
state_before: case a
R : Type u_2
inst✝¹² : Semiring R
M : Type u_3
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : Module R M
N : Type ?u.719894
inst✝⁹ : AddCommMonoid N
inst✝⁸ : Module R N
P : Type ?u.719924
inst✝⁷ : AddCommMonoid P
inst✝⁶ : Module R P
M' : Type ?u.719954
inst✝⁵ : AddCommGroup M'
inst✝⁴ : Module R M'
N' : Type u_4
inst✝³ : AddCommGroup N'
inst✝² : Module R N'
ι : Type u_1
ι' : Type ?u.720733
ι'' : Type ?u.720736
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
a : AlternatingMap R M N' ι
⊢ ↑(↑MultilinearMap.alternatization ↑a) = ↑(Nat.factorial (Fintype.card ι) • a)
Theorem: Asymptotics.isBigOWith_self_const_mul'
File: Mathlib/Analysis/Asymptotics/Asymptotics.lean

tactic: refine' (isBigOWith_const_mul_self ↑u⁻¹ _ l).congr_left _
state_before: α : Type u_2
β : Type ?u.325839
E : Type ?u.325842
F : Type ?u.325845
G : Type ?u.325848
E' : Type ?u.325851
F' : Type ?u.325854
G' : Type ?u.325857
E'' : Type ?u.325860
F'' : Type ?u.325863
G'' : Type ?u.325866
R : Type u_1
R' : Type ?u.325872
𝕜 : Type ?u.325875
𝕜' : Type ?u.325878
inst✝¹² : Norm E
inst✝¹¹ : Norm F
inst✝¹⁰ : Norm G
inst✝⁹ : SeminormedAddCommGroup E'
inst✝⁸ : SeminormedAddCommGroup F'
inst✝⁷ : SeminormedAddCommGroup G'
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedAddCommGroup F''
inst✝⁴ : NormedAddCommGroup G''
inst✝³ : SeminormedRing R
inst✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f✝ : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l✝ l' : Filter α
u : Rˣ
f : α → R
l : Filter α
⊢ IsBigOWith ‖↑u⁻¹‖ l f fun x => ↑u * f x

tactic: exact fun x => u.inv_mul_cancel_left (f x)
state_before: α : Type u_2
β : Type ?u.325839
E : Type ?u.325842
F : Type ?u.325845
G : Type ?u.325848
E' : Type ?u.325851
F' : Type ?u.325854
G' : Type ?u.325857
E'' : Type ?u.325860
F'' : Type ?u.325863
G'' : Type ?u.325866
R : Type u_1
R' : Type ?u.325872
𝕜 : Type ?u.325875
𝕜' : Type ?u.325878
inst✝¹² : Norm E
inst✝¹¹ : Norm F
inst✝¹⁰ : Norm G
inst✝⁹ : SeminormedAddCommGroup E'
inst✝⁸ : SeminormedAddCommGroup F'
inst✝⁷ : SeminormedAddCommGroup G'
inst✝⁶ : NormedAddCommGroup E''
inst✝⁵ : NormedAddCommGroup F''
inst✝⁴ : NormedAddCommGroup G''
inst✝³ : SeminormedRing R
inst✝² : SeminormedRing R'
inst✝¹ : NormedField 𝕜
inst✝ : NormedField 𝕜'
c c' c₁ c₂ : ℝ
f✝ : α → E
g : α → F
k : α → G
f' : α → E'
g' : α → F'
k' : α → G'
f'' : α → E''
g'' : α → F''
k'' : α → G''
l✝ l' : Filter α
u : Rˣ
f : α → R
l : Filter α
⊢ ∀ (x : α), ↑u⁻¹ * (↑u * f x) = f x
Theorem: Filter.Frequently.exists
File: Mathlib/Order/Filter/Basic.lean

tactic: by_contra H
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.160311
ι : Sort x
p : α → Prop
f : Filter α
hp : ∃ᶠ (x : α) in f, p x
⊢ ∃ x, p x

tactic: replace H : ∀ᶠ x in f, ¬p x
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.160311
ι : Sort x
p : α → Prop
f : Filter α
hp : ∃ᶠ (x : α) in f, p x
H : ¬∃ x, p x
⊢ False

tactic: exact eventually_of_forall (not_exists.1 H)
state_before: case H
α : Type u
β : Type v
γ : Type w
δ : Type ?u.160311
ι : Sort x
p : α → Prop
f : Filter α
hp : ∃ᶠ (x : α) in f, p x
H : ¬∃ x, p x
⊢ ∀ᶠ (x : α) in f, ¬p x

α : Type u
β : Type v
γ : Type w
δ : Type ?u.160311
ι : Sort x
p : α → Prop
f : Filter α
hp : ∃ᶠ (x : α) in f, p x
H : ∀ᶠ (x : α) in f, ¬p x
⊢ False

tactic: exact hp H
state_before: α : Type u
β : Type v
γ : Type w
δ : Type ?u.160311
ι : Sort x
p : α → Prop
f : Filter α
hp : ∃ᶠ (x : α) in f, p x
H : ∀ᶠ (x : α) in f, ¬p x
⊢ False
Theorem: one_add_one_eq_two
File: Mathlib/Data/Nat/Cast/Defs.lean

tactic: rw [←Nat.cast_one, ←Nat.cast_add]
state_before: α : Type u_1
inst✝ : AddMonoidWithOne α
⊢ 1 + 1 = 2

tactic: apply congrArg
state_before: α : Type u_1
inst✝ : AddMonoidWithOne α
⊢ ↑(1 + 1) = 2

tactic: decide
state_before: case h
α : Type u_1
inst✝ : AddMonoidWithOne α
⊢ 1 + 1 = 2
Theorem: Finset.Icc_subset_Ioo_iff
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: rw [← coe_subset, coe_Icc, coe_Ioo, Set.Icc_subset_Ioo_iff h₁]
state_before: ι : Type ?u.25908
α : Type u_1
inst✝¹ : Preorder α
inst✝ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
h₁ : a₁ ≤ b₁
⊢ Icc a₁ b₁ ⊆ Ioo a₂ b₂ ↔ a₂ < a₁ ∧ b₁ < b₂