tasksource/leandojo huggingface dataset:
Theorem: BilinForm.mem_skewAdjointSubmodule
File: Mathlib/LinearAlgebra/BilinearForm.lean

tactic: rw [isSkewAdjoint_iff_neg_self_adjoint]
state_before: R : Type ?u.1256417
M : Type ?u.1256420
inst✝²⁴ : Semiring R
inst✝²³ : AddCommMonoid M
inst✝²² : Module R M
R₁ : Type ?u.1256456
M₁ : Type ?u.1256459
inst✝²¹ : Ring R₁
inst✝²⁰ : AddCommGroup M₁
inst✝¹⁹ : Module R₁ M₁
R₂ : Type ?u.1257068
M₂ : Type ?u.1257071
inst✝¹⁸ : CommSemiring R₂
inst✝¹⁷ : AddCommMonoid M₂
inst✝¹⁶ : Module R₂ M₂
R₃ : Type u_1
M₃ : Type u_2
inst✝¹⁵ : CommRing R₃
inst✝¹⁴ : AddCommGroup M₃
inst✝¹³ : Module R₃ M₃
V : Type ?u.1257849
K : Type ?u.1257852
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.1259066
M₂'' : Type ?u.1259069
inst✝⁹ : AddCommMonoid M₂'
inst✝⁸ : AddCommMonoid M₂''
inst✝⁷ : Module R₂ M₂'
inst✝⁶ : Module R₂ M₂''
F : BilinForm R M
M' : Type ?u.1259380
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : Module R M'
B' : BilinForm R M'
f✝ f' : M →ₗ[R] M'
g g' : M' →ₗ[R] M
M₁' : Type ?u.1259817
inst✝³ : AddCommGroup M₁'
inst✝² : Module R₁ M₁'
B₁' : BilinForm R₁ M₁'
f₁ f₁' : M₁ →ₗ[R₁] M₁'
g₁ g₁' : M₁' →ₗ[R₁] M₁
B₂' : BilinForm R₂ M₂'
f₂ f₂' : M₂ →ₗ[R₂] M₂'
g₂ g₂' : M₂' →ₗ[R₂] M₂
M'' : Type ?u.1262296
inst✝¹ : AddCommMonoid M''
inst✝ : Module R M''
B'' : BilinForm R M''
F₂ : BilinForm R₂ M₂
B₃ : BilinForm R₃ M₃
f : Module.End R₃ M₃
⊢ f ∈ skewAdjointSubmodule B₃ ↔ IsSkewAdjoint B₃ f

tactic: exact Iff.rfl
state_before: R : Type ?u.1256417
M : Type ?u.1256420
inst✝²⁴ : Semiring R
inst✝²³ : AddCommMonoid M
inst✝²² : Module R M
R₁ : Type ?u.1256456
M₁ : Type ?u.1256459
inst✝²¹ : Ring R₁
inst✝²⁰ : AddCommGroup M₁
inst✝¹⁹ : Module R₁ M₁
R₂ : Type ?u.1257068
M₂ : Type ?u.1257071
inst✝¹⁸ : CommSemiring R₂
inst✝¹⁷ : AddCommMonoid M₂
inst✝¹⁶ : Module R₂ M₂
R₃ : Type u_1
M₃ : Type u_2
inst✝¹⁵ : CommRing R₃
inst✝¹⁴ : AddCommGroup M₃
inst✝¹³ : Module R₃ M₃
V : Type ?u.1257849
K : Type ?u.1257852
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.1259066
M₂'' : Type ?u.1259069
inst✝⁹ : AddCommMonoid M₂'
inst✝⁸ : AddCommMonoid M₂''
inst✝⁷ : Module R₂ M₂'
inst✝⁶ : Module R₂ M₂''
F : BilinForm R M
M' : Type ?u.1259380
inst✝⁵ : AddCommMonoid M'
inst✝⁴ : Module R M'
B' : BilinForm R M'
f✝ f' : M →ₗ[R] M'
g g' : M' →ₗ[R] M
M₁' : Type ?u.1259817
inst✝³ : AddCommGroup M₁'
inst✝² : Module R₁ M₁'
B₁' : BilinForm R₁ M₁'
f₁ f₁' : M₁ →ₗ[R₁] M₁'
g₁ g₁' : M₁' →ₗ[R₁] M₁
B₂' : BilinForm R₂ M₂'
f₂ f₂' : M₂ →ₗ[R₂] M₂'
g₂ g₂' : M₂' →ₗ[R₂] M₂
M'' : Type ?u.1262296
inst✝¹ : AddCommMonoid M''
inst✝ : Module R M''
B'' : BilinForm R M''
F₂ : BilinForm R₂ M₂
B₃ : BilinForm R₃ M₃
f : Module.End R₃ M₃
⊢ f ∈ skewAdjointSubmodule B₃ ↔ IsAdjointPair (-B₃) B₃ f f
Theorem: InnerProductSpace.Core.normSq_eq_zero
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: simp only [normSq, ext_iff, map_zero, inner_self_im, eq_self_iff_true, and_true_iff]
state_before: 𝕜 : Type u_1
E : Type ?u.540761
F : Type u_2
inst✝² : IsROrC 𝕜
inst✝¹ : AddCommGroup F
inst✝ : Module 𝕜 F
c : Core 𝕜 F
x : F
⊢ normSq x = 0 ↔ inner x x = 0
Theorem: Filter.atTop_finset_eq_iInf
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: refine' le_antisymm (le_iInf fun i => le_principal_iff.2 <| mem_atTop {i}) _
state_before: ι : Type ?u.267659
ι' : Type ?u.267662
α : Type u_1
β : Type ?u.267668
γ : Type ?u.267671
⊢ atTop = ⨅ (x : α), 𝓟 (Ici {x})

tactic: refine'
  le_iInf fun s =>
    le_principal_iff.2 <| mem_iInf_of_iInter s.finite_toSet (fun i => mem_principal_self _) _
state_before: ι : Type ?u.267659
ι' : Type ?u.267662
α : Type u_1
β : Type ?u.267668
γ : Type ?u.267671
⊢ (⨅ (x : α), 𝓟 (Ici {x})) ≤ atTop

tactic: simp only [subset_def, mem_iInter, SetCoe.forall, mem_Ici, Finset.le_iff_subset,
  Finset.mem_singleton, Finset.subset_iff, forall_eq]
state_before: ι : Type ?u.267659
ι' : Type ?u.267662
α : Type u_1
β : Type ?u.267668
γ : Type ?u.267671
s : Finset α
⊢ (⋂ (i : ↑↑s), Ici {↑i}) ⊆ Ici s

tactic: exact fun t => id
state_before: ι : Type ?u.267659
ι' : Type ?u.267662
α : Type u_1
β : Type ?u.267668
γ : Type ?u.267671
s : Finset α
⊢ ∀ (x : Finset α), (∀ (x_1 : α), x_1 ∈ ↑s → x_1 ∈ x) → ∀ ⦃x_1 : α⦄, x_1 ∈ s → x_1 ∈ x
Theorem: ConvexOn.openSegment_subset_strict_epigraph
File: Mathlib/Analysis/Convex/Function.lean

tactic: rintro _ ⟨a, b, ha, hb, hab, rfl⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type ?u.344708
α : Type ?u.344711
β : Type u_3
ι : Type ?u.344717
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : OrderedCancelAddCommMonoid β
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f : E → β
hf : ConvexOn 𝕜 s f
p q : E × β
hp : p.fst ∈ s ∧ f p.fst < p.snd
hq : q.fst ∈ s ∧ f q.fst ≤ q.snd
⊢ openSegment 𝕜 p q ⊆ {p | p.fst ∈ s ∧ f p.fst < p.snd}

tactic: refine' ⟨hf.1 hp.1 hq.1 ha.le hb.le hab, _⟩
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type ?u.344708
α : Type ?u.344711
β : Type u_3
ι : Type ?u.344717
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : OrderedCancelAddCommMonoid β
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f : E → β
hf : ConvexOn 𝕜 s f
p q : E × β
hp : p.fst ∈ s ∧ f p.fst < p.snd
hq : q.fst ∈ s ∧ f q.fst ≤ q.snd
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ a • p + b • q ∈ {p | p.fst ∈ s ∧ f p.fst < p.snd}

tactic: calc
  f (a • p.1 + b • q.1) ≤ a • f p.1 + b • f q.1 := hf.2 hp.1 hq.1 ha.le hb.le hab
  _ < a • p.2 + b • q.2 :=
    add_lt_add_of_lt_of_le (smul_lt_smul_of_pos hp.2 ha) (smul_le_smul_of_nonneg hq.2 hb.le)
state_before: case intro.intro.intro.intro.intro
𝕜 : Type u_1
E : Type u_2
F : Type ?u.344708
α : Type ?u.344711
β : Type u_3
ι : Type ?u.344717
inst✝⁶ : OrderedSemiring 𝕜
inst✝⁵ : AddCommMonoid E
inst✝⁴ : AddCommMonoid F
inst✝³ : OrderedCancelAddCommMonoid β
inst✝² : Module 𝕜 E
inst✝¹ : Module 𝕜 β
inst✝ : OrderedSMul 𝕜 β
s : Set E
f : E → β
hf : ConvexOn 𝕜 s f
p q : E × β
hp : p.fst ∈ s ∧ f p.fst < p.snd
hq : q.fst ∈ s ∧ f q.fst ≤ q.snd
a b : 𝕜
ha : 0 < a
hb : 0 < b
hab : a + b = 1
⊢ f (a • p + b • q).fst < (a • p + b • q).snd
Theorem: continuousWithinAt_singleton
File: Mathlib/Topology/ContinuousOn.lean

tactic: simp only [ContinuousWithinAt, nhdsWithin_singleton, tendsto_pure_nhds]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.325137
δ : Type ?u.325140
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
x : α
⊢ ContinuousWithinAt f {x} x
Theorem: Int.toNat_le_toNat
File: Mathlib/Data/Int/Order/Basic.lean

tactic: rw [toNat_le]
state_before: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
h : a ≤ b
⊢ toNat a ≤ toNat b

tactic: exact le_trans h (self_le_toNat b)
state_before: a✝ b✝ : ℤ
n : ℕ
a b : ℤ
h : a ≤ b
⊢ a ≤ ↑(toNat b)
Theorem: finite_of_fin_dim_affineIndependent
File: Mathlib/LinearAlgebra/AffineSpace/FiniteDimensional.lean

tactic: nontriviality ι
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
hi : AffineIndependent k p
⊢ _root_.Finite ι

tactic: inhabit ι
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
hi : AffineIndependent k p
✝ : Nontrivial ι
⊢ _root_.Finite ι

tactic: rw [affineIndependent_iff_linearIndependent_vsub k p default] at hi
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
hi : AffineIndependent k p
✝ : Nontrivial ι
inhabited_h : Inhabited ι
⊢ _root_.Finite ι

tactic: letI : IsNoetherian k V := IsNoetherian.iff_fg.2 inferInstance
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
✝ : Nontrivial ι
inhabited_h : Inhabited ι
hi : LinearIndependent k fun i => p ↑i -ᵥ p default
⊢ _root_.Finite ι

tactic: exact
  (Set.finite_singleton default).finite_of_compl (Set.finite_coe_iff.1 hi.finite_of_isNoetherian)
state_before: k : Type u_1
V : Type u_2
P : Type u_3
ι : Type u_4
inst✝⁴ : DivisionRing k
inst✝³ : AddCommGroup V
inst✝² : Module k V
inst✝¹ : AffineSpace V P
inst✝ : FiniteDimensional k V
p : ι → P
✝ : Nontrivial ι
inhabited_h : Inhabited ι
hi : LinearIndependent k fun i => p ↑i -ᵥ p default
this : IsNoetherian k V := Iff.mpr IsNoetherian.iff_fg inferInstance
⊢ _root_.Finite ι
Theorem: differentiableWithinAt_const_add_iff
File: Mathlib/Analysis/Calculus/FDeriv/Add.lean

tactic: simpa using h.const_add (-c)
state_before: 𝕜 : Type u_1
inst✝⁸ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
F : Type u_3
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
G : Type ?u.257762
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
G' : Type ?u.257857
inst✝¹ : NormedAddCommGroup G'
inst✝ : NormedSpace 𝕜 G'
f f₀ f₁ g : E → F
f' f₀' f₁' g' e : E →L[𝕜] F
x : E
s t : Set E
L L₁ L₂ : Filter E
c : F
h : DifferentiableWithinAt 𝕜 (fun y => c + f y) s x
⊢ DifferentiableWithinAt 𝕜 f s x
Theorem: List.inter_cons_of_mem
File: Mathlib/Data/List/Lattice.lean

tactic: simp only [instInterList, List.inter, filter_cons_of_pos, h]
state_before: α : Type u_1
l l₁✝ l₂ : List α
p : α → Prop
a : α
inst✝ : DecidableEq α
l₁ : List α
h : a ∈ l₂
⊢ (a :: l₁) ∩ l₂ = a :: l₁ ∩ l₂
Theorem: SimpleGraph.incMatrix_apply_mul_incMatrix_apply_of_not_adj
File: Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean

tactic: rw [incMatrix_apply_mul_incMatrix_apply, Set.indicator_of_not_mem]
state_before: R : Type u_2
α : Type u_1
G : SimpleGraph α
inst✝ : MulZeroOneClass R
a b : α
e : Sym2 α
hab : a ≠ b
h : ¬Adj G a b
⊢ incMatrix R G a e * incMatrix R G b e = 0

tactic: rw [G.incidenceSet_inter_incidenceSet_of_not_adj h hab]
state_before: case h
R : Type u_2
α : Type u_1
G : SimpleGraph α
inst✝ : MulZeroOneClass R
a b : α
e : Sym2 α
hab : a ≠ b
h : ¬Adj G a b
⊢ ¬e ∈ incidenceSet G a ∩ incidenceSet G b

tactic: exact Set.not_mem_empty e
state_before: case h
R : Type u_2
α : Type u_1
G : SimpleGraph α
inst✝ : MulZeroOneClass R
a b : α
e : Sym2 α
hab : a ≠ b
h : ¬Adj G a b
⊢ ¬e ∈ ∅
Theorem: Ideal.multiset_prod_span_singleton
File: Mathlib/RingTheory/Ideal/Operations.lean

tactic: simp
state_before: R : Type u
ι : Type ?u.251146
inst✝ : CommSemiring R
I J K L : Ideal R
m : Multiset R
⊢ Multiset.prod (Multiset.map (fun x => span {x}) 0) = span {Multiset.prod 0}

tactic: simp only [Multiset.map_cons, Multiset.prod_cons, ih, ← Ideal.span_singleton_mul_span_singleton]
state_before: R : Type u
ι : Type ?u.251146
inst✝ : CommSemiring R
I J K L : Ideal R
m✝ : Multiset R
a : R
m : Multiset R
ih : Multiset.prod (Multiset.map (fun x => span {x}) m) = span {Multiset.prod m}
⊢ Multiset.prod (Multiset.map (fun x => span {x}) (a ::ₘ m)) = span {Multiset.prod (a ::ₘ m)}
Theorem: interior_Ico
File: Mathlib/Topology/Order/Basic.lean

tactic: rw [← Ici_inter_Iio, interior_inter, interior_Ici, interior_Iio, Ioi_inter_Iio]
state_before: α : Type u
β : Type v
γ : Type w
inst✝⁴ : TopologicalSpace α
inst✝³ : LinearOrder α
inst✝² : OrderTopology α
inst✝¹ : DenselyOrdered α
a✝ b✝ : α
s : Set α
inst✝ : NoMinOrder α
a b : α
⊢ interior (Ico a b) = Ioo a b
Theorem: MvPowerSeries.eq_mul_inv_iff_mul_eq
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: simp [k, mul_assoc, MvPowerSeries.inv_mul_cancel _ h]
state_before: σ : Type u_1
R : Type ?u.1886295
k✝ : Type u_2
inst✝ : Field k✝
φ₁ φ₂ φ₃ : MvPowerSeries σ k✝
h : ↑(constantCoeff σ k✝) φ₃ ≠ 0
k : φ₁ = φ₂ * φ₃⁻¹
⊢ φ₁ * φ₃ = φ₂

tactic: simp [← k, mul_assoc, MvPowerSeries.mul_inv_cancel _ h]
state_before: σ : Type u_1
R : Type ?u.1886295
k✝ : Type u_2
inst✝ : Field k✝
φ₁ φ₂ φ₃ : MvPowerSeries σ k✝
h : ↑(constantCoeff σ k✝) φ₃ ≠ 0
k : φ₁ * φ₃ = φ₂
⊢ φ₁ = φ₂ * φ₃⁻¹
Theorem: Rat.round_cast
File: Mathlib/Data/Rat/Floor.lean

tactic: have H : ((2 : ℚ) : α) = (2 : α) := Rat.cast_coe_nat 2
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
x : ℚ
⊢ round ↑x = round x

tactic: have : ((x + 1 / 2 : ℚ) : α) = x + 1 / 2 := by simp [H]
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
x : ℚ
H : ↑2 = 2
⊢ round ↑x = round x

tactic: rw [round_eq, round_eq, ← this, floor_cast]
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
x : ℚ
H : ↑2 = 2
this : ↑(x + 1 / 2) = ↑x + 1 / 2
⊢ round ↑x = round x

tactic: simp [H]
state_before: α : Type u_1
inst✝¹ : LinearOrderedField α
inst✝ : FloorRing α
x : ℚ
H : ↑2 = 2
⊢ ↑(x + 1 / 2) = ↑x + 1 / 2
Theorem: AddCircle.coe_real_preimage_closedBall_eq_iUnion
File: Mathlib/Analysis/Normed/Group/AddCircle.lean

tactic: rcases eq_or_ne p 0 with (rfl | hp)
state_before: p x ε : ℝ
⊢ QuotientAddGroup.mk ⁻¹' closedBall (↑x) ε = ⋃ (z : ℤ), closedBall (x + z • p) ε

tactic: ext y
state_before: case inr
p x ε : ℝ
hp : p ≠ 0
⊢ QuotientAddGroup.mk ⁻¹' closedBall (↑x) ε = ⋃ (z : ℤ), closedBall (x + z • p) ε

tactic: simp only [dist_eq_norm, mem_preimage, mem_closedBall, zsmul_eq_mul, mem_iUnion, Real.norm_eq_abs,
  ← QuotientAddGroup.mk_sub, norm_eq, ← sub_sub]
state_before: case inr.h
p x ε : ℝ
hp : p ≠ 0
y : ℝ
⊢ y ∈ QuotientAddGroup.mk ⁻¹' closedBall (↑x) ε ↔ y ∈ ⋃ (z : ℤ), closedBall (x + z • p) ε

tactic: refine' ⟨fun h => ⟨round (p⁻¹ * (y - x)), h⟩, _⟩
state_before: case inr.h
p x ε : ℝ
hp : p ≠ 0
y : ℝ
⊢ abs (y - x - ↑(round (p⁻¹ * (y - x))) * p) ≤ ε ↔ ∃ i, abs (y - x - ↑i * p) ≤ ε

tactic: rintro ⟨n, hn⟩
state_before: case inr.h
p x ε : ℝ
hp : p ≠ 0
y : ℝ
⊢ (∃ i, abs (y - x - ↑i * p) ≤ ε) → abs (y - x - ↑(round (p⁻¹ * (y - x))) * p) ≤ ε

tactic: rw [← mul_le_mul_left (abs_pos.mpr <| inv_ne_zero hp), ← abs_mul, mul_sub, mul_comm _ p,
  inv_mul_cancel_left₀ hp] at hn⊢
state_before: case inr.h.intro
p x ε : ℝ
hp : p ≠ 0
y : ℝ
n : ℤ
hn : abs (y - x - ↑n * p) ≤ ε
⊢ abs (y - x - ↑(round (p⁻¹ * (y - x))) * p) ≤ ε

tactic: exact (round_le (p⁻¹ * (y - x)) n).trans hn
state_before: case inr.h.intro
p x ε : ℝ
hp : p ≠ 0
y : ℝ
n : ℤ
hn : abs (p⁻¹ * (y - x) - ↑n) ≤ abs p⁻¹ * ε
⊢ abs (p⁻¹ * (y - x) - ↑(round (p⁻¹ * (y - x)))) ≤ abs p⁻¹ * ε

tactic: simp [iUnion_const]
state_before: case inl
x ε : ℝ
⊢ QuotientAddGroup.mk ⁻¹' closedBall (↑x) ε = ⋃ (z : ℤ), closedBall (x + z • 0) ε
Theorem: Wbtw.trans_right_left
File: Mathlib/Analysis/Convex/Between.lean

tactic: rw [wbtw_comm] at *
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.578788
P : Type u_3
P' : Type ?u.578794
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
w x y z : P
h₁ : Wbtw R w x z
h₂ : Wbtw R x y z
⊢ Wbtw R w x y

tactic: exact h₁.trans_left_right h₂
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.578788
P : Type u_3
P' : Type ?u.578794
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
w x y z : P
h₁ : Wbtw R z x w
h₂ : Wbtw R z y x
⊢ Wbtw R y x w
Theorem: Filter.Germ.max_def
File: Mathlib/Order/Filter/FilterProduct.lean

tactic: cases' le_total (a : β*) b with h h
state_before: α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : Germ (↑φ) β
a b : α → β
⊢ max ↑a ↑b = map₂ max ↑a ↑b

tactic: rw [max_eq_right h, map₂_coe, coe_eq]
state_before: case inl
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : Germ (↑φ) β
a b : α → β
h : ↑a ≤ ↑b
⊢ max ↑a ↑b = map₂ max ↑a ↑b

tactic: exact h.mono fun i hi => (max_eq_right hi).symm
state_before: case inl
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : Germ (↑φ) β
a b : α → β
h : ↑a ≤ ↑b
⊢ b =ᶠ[↑φ] fun x => max (a x) (b x)

tactic: rw [max_eq_left h, map₂_coe, coe_eq]
state_before: case inr
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : Germ (↑φ) β
a b : α → β
h : ↑b ≤ ↑a
⊢ max ↑a ↑b = map₂ max ↑a ↑b

tactic: exact h.mono fun i hi => (max_eq_left hi).symm
state_before: case inr
α : Type u
β : Type v
φ : Ultrafilter α
inst✝ : LinearOrder β
x y : Germ (↑φ) β
a b : α → β
h : ↑b ≤ ↑a
⊢ a =ᶠ[↑φ] fun x => max (a x) (b x)
Theorem: Finset.prod_disj_sum
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: rw [← map_inl_disjUnion_map_inr, prod_disjUnion, prod_map, prod_map]
state_before: ι : Type ?u.308476
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝ : CommMonoid β
s : Finset α
t : Finset γ
f : α ⊕ γ → β
⊢ ∏ x in disjSum s t, f x = (∏ x in s, f (Sum.inl x)) * ∏ x in t, f (Sum.inr x)

tactic: rfl
state_before: ι : Type ?u.308476
β : Type u
α : Type v
γ : Type w
s✝ s₁ s₂ : Finset α
a : α
f✝ g : α → β
inst✝ : CommMonoid β
s : Finset α
t : Finset γ
f : α ⊕ γ → β
⊢ (∏ x in s, f (↑Function.Embedding.inl x)) * ∏ x in t, f (↑Function.Embedding.inr x) =
    (∏ x in s, f (Sum.inl x)) * ∏ x in t, f (Sum.inr x)
Theorem: Nat.one_add_le_iff
File: Mathlib/Data/Nat/Basic.lean

tactic: simp only [add_comm, add_one_le_iff]
state_before: m n k a b : ℕ
⊢ 1 + a ≤ b ↔ a < b
Theorem: Valued.mem_nhds
File: Mathlib/Topology/Algebra/Valuation.lean

tactic: simp only [← nhds_translation_add_neg x, ← sub_eq_add_neg, preimage_setOf_eq, true_and,
  ((hasBasis_nhds_zero R Γ₀).comap fun y => y - x).mem_iff]
state_before: R : Type u
inst✝¹ : Ring R
Γ₀ : Type v
inst✝ : LinearOrderedCommGroupWithZero Γ₀
_i : Valued R Γ₀
s : Set R
x : R
⊢ s ∈ 𝓝 x ↔ ∃ γ, {y | ↑v (y - x) < ↑γ} ⊆ s
Theorem: Multiset.prod_eq_one_iff
File: Mathlib/Algebra/BigOperators/Multiset/Lemmas.lean

tactic: simpa using List.prod_eq_one_iff l
state_before: α : Type u_1
inst✝ : CanonicallyOrderedMonoid α
m : Multiset α
l : List α
⊢ prod (Quotient.mk (List.isSetoid α) l) = 1 ↔ ∀ (x : α), x ∈ Quotient.mk (List.isSetoid α) l → x = 1
Theorem: CategoryTheory.StructuredArrow.map_comp
File: Mathlib/CategoryTheory/StructuredArrow.lean

tactic: rw [eq_mk h]
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
S S' S'' : D
Y Y' : C
T : C ⥤ D
f : S ⟶ S'
f' : S' ⟶ S''
h : StructuredArrow S'' T
⊢ (map (f ≫ f')).obj h = (map f).obj ((map f').obj h)

tactic: simp
state_before: C : Type u₁
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
S S' S'' : D
Y Y' : C
T : C ⥤ D
f : S ⟶ S'
f' : S' ⟶ S''
h : StructuredArrow S'' T
⊢ (map (f ≫ f')).obj (mk h.hom) = (map f).obj ((map f').obj (mk h.hom))
Theorem: Nat.four_pow_le_two_mul_self_mul_centralBinom
File: Mathlib/Data/Nat/Choose/Central.lean

tactic: norm_num [centralBinom, choose]
state_before: x✝ : 0 < 1
⊢ 4 ^ 1 ≤ 2 * 1 * centralBinom 1

tactic: norm_num [centralBinom, choose]
state_before: x✝ : 0 < 2
⊢ 4 ^ 2 ≤ 2 * 2 * centralBinom 2

tactic: norm_num [centralBinom, choose]
state_before: x✝ : 0 < 3
⊢ 4 ^ 3 ≤ 2 * 3 * centralBinom 3

tactic: rw [mul_assoc]
state_before: n : ℕ
x✝ : 0 < n + 4
⊢ (n + 4) * centralBinom (n + 4) ≤ 2 * (n + 4) * centralBinom (n + 4)

tactic: refine' le_mul_of_pos_left zero_lt_two
state_before: n : ℕ
x✝ : 0 < n + 4
⊢ (n + 4) * centralBinom (n + 4) ≤ 2 * ((n + 4) * centralBinom (n + 4))
Theorem: ENNReal.nhds_zero
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp [pos_iff_ne_zero, Iio]
state_before: α : Type ?u.48158
β : Type ?u.48161
γ : Type ?u.48164
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
⊢ (⨅ (l : ℝ≥0∞) (_ : ⊥ < l), 𝓟 (Iio l)) = ⨅ (a : ℝ≥0∞) (_ : a ≠ 0), 𝓟 (Iio a)
Theorem: pairwise_subtype_iff_pairwise_set
File: Mathlib/Data/Set/Pairwise/Basic.lean

tactic: simp only [Pairwise, Set.Pairwise, SetCoe.forall, Ne.def, Subtype.ext_iff, Subtype.coe_mk]
state_before: α : Type u_1
β : Type ?u.31833
γ : Type ?u.31836
ι : Type ?u.31839
ι' : Type ?u.31842
r✝ p q : α → α → Prop
s : Set α
r : α → α → Prop
⊢ (Pairwise fun x y => r ↑x ↑y) ↔ Set.Pairwise s r
Theorem: Holor.cprankMax_1
File: Mathlib/Data/Holor.lean

tactic: have h' := CPRankMax.succ 0 x 0 h CPRankMax.zero
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝¹ : Monoid α
inst✝ : AddMonoid α
x : Holor α ds
h : CPRankMax1 x
⊢ CPRankMax 1 x

tactic: rwa [zero_add, add_zero] at h'
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
inst✝¹ : Monoid α
inst✝ : AddMonoid α
x : Holor α ds
h : CPRankMax1 x
h' : CPRankMax (0 + 1) (x + 0)
⊢ CPRankMax 1 x
Theorem: TensorAlgebra.hom_ext
File: Mathlib/LinearAlgebra/TensorAlgebra/Basic.lean

tactic: rw [← lift_symm_apply, ← lift_symm_apply] at w
state_before: R : Type u_2
inst✝⁴ : CommSemiring R
M : Type u_3
inst✝³ : AddCommMonoid M
inst✝² : Module R M
A : Type u_1
inst✝¹ : Semiring A
inst✝ : Algebra R A
f g : TensorAlgebra R M →ₐ[R] A
w : LinearMap.comp (AlgHom.toLinearMap f) (ι R) = LinearMap.comp (AlgHom.toLinearMap g) (ι R)
⊢ f = g

tactic: exact (lift R).symm.injective w
state_before: R : Type u_2
inst✝⁴ : CommSemiring R
M : Type u_3
inst✝³ : AddCommMonoid M
inst✝² : Module R M
A : Type u_1
inst✝¹ : Semiring A
inst✝ : Algebra R A
f g : TensorAlgebra R M →ₐ[R] A
w : ↑(lift R).symm f = ↑(lift R).symm g
⊢ f = g
Theorem: CategoryTheory.Limits.Sigma.ι_reindex_inv
File: Mathlib/CategoryTheory/Limits/Shapes/Products.lean

tactic: simp [Iso.comp_inv_eq]
state_before: β : Type w
C : Type u
inst✝² : Category C
γ : Type v
ε : β ≃ γ
f : γ → C
inst✝¹ : HasCoproduct f
inst✝ : HasCoproduct (f ∘ ↑ε)
b : β
⊢ ι f (↑ε b) ≫ (reindex ε f).inv = ι (f ∘ ↑ε) b
Theorem: Ordinal.typein_apply
File: Mathlib/SetTheory/Ordinal/Basic.lean

tactic: rw [RelEmbedding.trans_apply]
state_before: α✝ : Type ?u.73654
β✝ : Type ?u.73657
γ : Type ?u.73660
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u_1
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≼i s
a : α
x✝ : ↑{b | r b a}
x : α
h : x ∈ {b | r b a}
⊢ ↑(RelEmbedding.trans (Subrel.relEmbedding r {b | r b a}) f.toRelEmbedding) { val := x, property := h } ∈
    {b | s b (↑f a)}

tactic: exact f.toRelEmbedding.map_rel_iff.2 h
state_before: α✝ : Type ?u.73654
β✝ : Type ?u.73657
γ : Type ?u.73660
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u_1
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≼i s
a : α
x✝ : ↑{b | r b a}
x : α
h : x ∈ {b | r b a}
⊢ ↑f.toRelEmbedding (↑(Subrel.relEmbedding r {b | r b a}) { val := x, property := h }) ∈ {b | s b (↑f a)}

tactic: rcases f.init h with ⟨a, rfl⟩
state_before: α✝ : Type ?u.73654
β✝ : Type ?u.73657
γ : Type ?u.73660
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u_1
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≼i s
a : α
x✝ : ↑{b | s b (↑f a)}
y : β
h : y ∈ {b | s b (↑f a)}
⊢ ∃ a_1,
    ↑(RelEmbedding.codRestrict {b | s b (↑f a)}
            (RelEmbedding.trans (Subrel.relEmbedding r {b | r b a}) f.toRelEmbedding)
            (_ :
              ∀ (x : ↑{b | r b a}),
                ↑(RelEmbedding.trans (Subrel.relEmbedding r {b | r b a}) f.toRelEmbedding) x ∈ {b | s b (↑f a)}))
        a_1 =
      { val := y, property := h }

tactic: exact ⟨⟨a, f.toRelEmbedding.map_rel_iff.1 h⟩,
  Subtype.eq <| RelEmbedding.trans_apply _ _ _⟩
state_before: case intro
α✝ : Type ?u.73654
β✝ : Type ?u.73657
γ : Type ?u.73660
r✝ : α✝ → α✝ → Prop
s✝ : β✝ → β✝ → Prop
t : γ → γ → Prop
α β : Type u_1
r : α → α → Prop
s : β → β → Prop
inst✝¹ : IsWellOrder α r
inst✝ : IsWellOrder β s
f : r ≼i s
a✝ : α
x✝ : ↑{b | s b (↑f a✝)}
a : α
h : ↑f a ∈ {b | s b (↑f a✝)}
⊢ ∃ a_1,
    ↑(RelEmbedding.codRestrict {b | s b (↑f a✝)}
            (RelEmbedding.trans (Subrel.relEmbedding r {b | r b a✝}) f.toRelEmbedding)
            (_ :
              ∀ (x : ↑{b | r b a✝}),
                ↑(RelEmbedding.trans (Subrel.relEmbedding r {b | r b a✝}) f.toRelEmbedding) x ∈ {b | s b (↑f a✝)}))
        a_1 =
      { val := ↑f a, property := h }
Theorem: Besicovitch.SatelliteConfig.centerAndRescale_radius
File: Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean

tactic: simp [SatelliteConfig.centerAndRescale, inv_mul_cancel (a.rpos _).ne']
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℝ E
N✝ : ℕ
τ✝ : ℝ
a✝ : SatelliteConfig E N✝ τ✝
N : ℕ
τ : ℝ
a : SatelliteConfig E N τ
⊢ r (centerAndRescale a) (last N) = 1