tasksource/leandojo huggingface dataset:
Theorem: MeasureTheory.sigmaFinite_trim_bot_iff
File: Mathlib/MeasureTheory/Measure/MeasureSpace.lean

tactic: rw [sigmaFinite_bot_iff]
state_before: α : Type u_1
β : Type ?u.3500690
γ : Type ?u.3500693
δ : Type ?u.3500696
ι : Type ?u.3500699
R : Type ?u.3500702
R' : Type ?u.3500705
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
⊢ SigmaFinite (trim μ (_ : ⊥ ≤ m0)) ↔ IsFiniteMeasure μ

tactic: refine' ⟨fun h => ⟨_⟩, fun h => ⟨_⟩⟩ <;> have h_univ := h.measure_univ_lt_top
state_before: α : Type u_1
β : Type ?u.3500690
γ : Type ?u.3500693
δ : Type ?u.3500696
ι : Type ?u.3500699
R : Type ?u.3500702
R' : Type ?u.3500705
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
⊢ IsFiniteMeasure (trim μ (_ : ⊥ ≤ m0)) ↔ IsFiniteMeasure μ

tactic: rwa [trim_measurableSet_eq bot_le MeasurableSet.univ] at h_univ
state_before: case refine'_1
α : Type u_1
β : Type ?u.3500690
γ : Type ?u.3500693
δ : Type ?u.3500696
ι : Type ?u.3500699
R : Type ?u.3500702
R' : Type ?u.3500705
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
h : IsFiniteMeasure (trim μ (_ : ⊥ ≤ m0))
h_univ : ↑↑(trim μ (_ : ⊥ ≤ m0)) univ < ⊤
⊢ ↑↑μ univ < ⊤

tactic: rwa [trim_measurableSet_eq bot_le MeasurableSet.univ]
state_before: case refine'_2
α : Type u_1
β : Type ?u.3500690
γ : Type ?u.3500693
δ : Type ?u.3500696
ι : Type ?u.3500699
R : Type ?u.3500702
R' : Type ?u.3500705
m m0 : MeasurableSpace α
μ : Measure α
s : Set α
h : IsFiniteMeasure μ
h_univ : ↑↑μ univ < ⊤
⊢ ↑↑(trim μ (_ : ⊥ ≤ m0)) univ < ⊤
Theorem: VectorBundleCore.localTriv_continuousLinearMapAt
File: Mathlib/Topology/VectorBundle/Basic.lean

tactic: ext1 v
state_before: R : Type u_2
B : Type u_1
F : Type u_3
E : B → Type ?u.436783
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_4
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
⊢ Trivialization.continuousLinearMapAt R (localTriv Z i) b = coordChange Z (indexAt Z b) i b

tactic: rw [(Z.localTriv i).continuousLinearMapAt_apply R, (Z.localTriv i).coe_linearMapAt_of_mem]
state_before: case h
R : Type u_2
B : Type u_1
F : Type u_3
E : B → Type ?u.436783
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_4
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
v : Fiber Z b
⊢ ↑(Trivialization.continuousLinearMapAt R (localTriv Z i) b) v = ↑(coordChange Z (indexAt Z b) i b) v

tactic: exacts [rfl, hb]
state_before: case h
R : Type u_2
B : Type u_1
F : Type u_3
E : B → Type ?u.436783
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_4
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
v : Fiber Z b
⊢ (fun y => (↑(localTriv Z i) (totalSpaceMk b y)).snd) v = ↑(coordChange Z (indexAt Z b) i b) v

case h
R : Type u_2
B : Type u_1
F : Type u_3
E : B → Type ?u.436783
inst✝⁸ : NontriviallyNormedField R
inst✝⁷ : (x : B) → AddCommMonoid (E x)
inst✝⁶ : (x : B) → Module R (E x)
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace R F
inst✝³ : TopologicalSpace B
inst✝² : TopologicalSpace (TotalSpace E)
inst✝¹ : (x : B) → TopologicalSpace (E x)
inst✝ : FiberBundle F E
ι : Type u_4
Z : VectorBundleCore R B F ι
b✝ : B
a : F
i j : ι
b : B
hb : b ∈ baseSet Z i
v : Fiber Z b
⊢ b ∈ (localTriv Z i).baseSet
Theorem: ENNReal.mul_lt_top_iff
File: Mathlib/Data/Real/ENNReal.lean

tactic: constructor
state_before: α : Type ?u.92811
β : Type ?u.92814
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
⊢ a * b < ⊤ ↔ a < ⊤ ∧ b < ⊤ ∨ a = 0 ∨ b = 0

tactic: intro h
state_before: case mp
α : Type ?u.92811
β : Type ?u.92814
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
⊢ a * b < ⊤ → a < ⊤ ∧ b < ⊤ ∨ a = 0 ∨ b = 0

tactic: rw [← or_assoc, or_iff_not_imp_right, or_iff_not_imp_right]
state_before: case mp
α : Type ?u.92811
β : Type ?u.92814
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
h : a * b < ⊤
⊢ a < ⊤ ∧ b < ⊤ ∨ a = 0 ∨ b = 0

tactic: intro hb ha
state_before: case mp
α : Type ?u.92811
β : Type ?u.92814
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
h : a * b < ⊤
⊢ ¬b = 0 → ¬a = 0 → a < ⊤ ∧ b < ⊤

tactic: exact ⟨lt_top_of_mul_ne_top_left h.ne hb, lt_top_of_mul_ne_top_right h.ne ha⟩
state_before: case mp
α : Type ?u.92811
β : Type ?u.92814
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
h : a * b < ⊤
hb : ¬b = 0
ha : ¬a = 0
⊢ a < ⊤ ∧ b < ⊤

tactic: rintro (⟨ha, hb⟩ | rfl | rfl) <;> [exact mul_lt_top ha.ne hb.ne; simp; simp]
state_before: case mpr
α : Type ?u.92811
β : Type ?u.92814
a✝ b✝ c d : ℝ≥0∞
r p q : ℝ≥0
a b : ℝ≥0∞
⊢ a < ⊤ ∧ b < ⊤ ∨ a = 0 ∨ b = 0 → a * b < ⊤
Theorem: bernsteinPolynomial.iterate_derivative_at_1_ne_zero
File: Mathlib/RingTheory/Polynomial/Bernstein.lean

tactic: rw [bernsteinPolynomial.iterate_derivative_at_1 _ _ _ h, Ne.def, neg_one_pow_mul_eq_zero_iff, ←
  Nat.cast_succ, ← pochhammer_eval_cast, ← Nat.cast_zero, Nat.cast_inj]
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : CharZero R
n ν : ℕ
h : ν ≤ n
⊢ eval 1 ((↑derivative^[n - ν]) (bernsteinPolynomial R n ν)) ≠ 0

tactic: exact (pochhammer_pos _ _ (Nat.succ_pos ν)).ne'
state_before: R : Type u_1
inst✝¹ : CommRing R
inst✝ : CharZero R
n ν : ℕ
h : ν ≤ n
⊢ ¬eval (Nat.succ ν) (pochhammer ℕ (n - ν)) = 0
Theorem: SimpleGraph.Subgraph.deleteEdges_le_of_le
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: constructor <;> simp (config := { contextual := true }) only [deleteEdges_verts, deleteEdges_adj,
  true_and_iff, and_imp, subset_rfl]
state_before: ι : Sort ?u.250888
V : Type u
W : Type v
G : SimpleGraph V
G' : Subgraph G
s✝ s s' : Set (Sym2 V)
h : s ⊆ s'
⊢ deleteEdges G' s' ≤ deleteEdges G' s

tactic: exact fun _ _ _ hs' hs ↦ hs' (h hs)
state_before: case right
ι : Sort ?u.250888
V : Type u
W : Type v
G : SimpleGraph V
G' : Subgraph G
s✝ s s' : Set (Sym2 V)
h : s ⊆ s'
⊢ ∀ ⦃v w : V⦄, Adj G' v w → ¬Quotient.mk (Sym2.Rel.setoid V) (v, w) ∈ s' → ¬Quotient.mk (Sym2.Rel.setoid V) (v, w) ∈ s
Theorem: CategoryTheory.Limits.cospanExt_inv_app_right
File: Mathlib/CategoryTheory/Limits/Shapes/Pullbacks.lean

tactic: dsimp [cospanExt]
state_before: C : Type u
inst✝¹ : Category C
D : Type u₂
inst✝ : Category D
X Y Z X' Y' Z' : C
iX : X ≅ X'
iY : Y ≅ Y'
iZ : Z ≅ Z'
f : X ⟶ Z
g : Y ⟶ Z
f' : X' ⟶ Z'
g' : Y' ⟶ Z'
wf : iX.hom ≫ f' = f ≫ iZ.hom
wg : iY.hom ≫ g' = g ≫ iZ.hom
⊢ (cospanExt iX iY iZ wf wg).inv.app WalkingCospan.right = iY.inv
Theorem: Module.DualBases.dual_lc
File: Mathlib/LinearAlgebra/Dual.lean

tactic: erw [LinearMap.map_sum]
state_before: R : Type u_2
M : Type u_3
ι : Type u_1
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
e : ι → M
ε : ι → Dual R M
inst✝ : DecidableEq ι
h : DualBases e ε
l : ι →₀ R
i : ι
⊢ ↑(ε i) (lc e l) = ↑l i

tactic: simp_rw [map_smul]
state_before: R : Type u_2
M : Type u_3
ι : Type u_1
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
e : ι → M
ε : ι → Dual R M
inst✝ : DecidableEq ι
h : DualBases e ε
l : ι →₀ R
i : ι
⊢ (Finset.sum l.support fun i_1 => ↑(ε i) ((fun i a => a • e i) i_1 (↑l i_1))) = ↑l i

tactic: rw [Finset.sum_eq_single i]
state_before: R : Type u_2
M : Type u_3
ι : Type u_1
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
e : ι → M
ε : ι → Dual R M
inst✝ : DecidableEq ι
h : DualBases e ε
l : ι →₀ R
i : ι
⊢ (Finset.sum l.support fun x => ↑(ε i) (↑l x • e x)) = ↑l i

tactic: simp [h.eval, smul_eq_mul]
state_before: R : Type u_2
M : Type u_3
ι : Type u_1
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
e : ι → M
ε : ι → Dual R M
inst✝ : DecidableEq ι
h : DualBases e ε
l : ι →₀ R
i : ι
⊢ ↑(ε i) (↑l i • e i) = ↑l i

tactic: intro q _ q_ne
state_before: case h₀
R : Type u_2
M : Type u_3
ι : Type u_1
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
e : ι → M
ε : ι → Dual R M
inst✝ : DecidableEq ι
h : DualBases e ε
l : ι →₀ R
i : ι
⊢ ∀ (b : ι), b ∈ l.support → b ≠ i → ↑(ε i) (↑l b • e b) = 0

tactic: simp [q_ne.symm, h.eval, smul_eq_mul]
state_before: case h₀
R : Type u_2
M : Type u_3
ι : Type u_1
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
e : ι → M
ε : ι → Dual R M
inst✝ : DecidableEq ι
h : DualBases e ε
l : ι →₀ R
i q : ι
a✝ : q ∈ l.support
q_ne : q ≠ i
⊢ ↑(ε i) (↑l q • e q) = 0

tactic: intro p_not_in
state_before: case h₁
R : Type u_2
M : Type u_3
ι : Type u_1
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
e : ι → M
ε : ι → Dual R M
inst✝ : DecidableEq ι
h : DualBases e ε
l : ι →₀ R
i : ι
⊢ ¬i ∈ l.support → ↑(ε i) (↑l i • e i) = 0

tactic: simp [Finsupp.not_mem_support_iff.1 p_not_in]
state_before: case h₁
R : Type u_2
M : Type u_3
ι : Type u_1
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
e : ι → M
ε : ι → Dual R M
inst✝ : DecidableEq ι
h : DualBases e ε
l : ι →₀ R
i : ι
p_not_in : ¬i ∈ l.support
⊢ ↑(ε i) (↑l i • e i) = 0
Theorem: Tree.numLeaves_eq_numNodes_succ
File: Mathlib/Data/Tree.lean

tactic: induction x <;> simp [*, Nat.add_comm, Nat.add_assoc, Nat.add_left_comm]
state_before: α : Type u
x : Tree α
⊢ numLeaves x = numNodes x + 1
Theorem: measurableSet_regionBetween
File: Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean

tactic: dsimp only [regionBetween, Ioo, mem_setOf_eq, setOf_and]
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : MeasureTheory.Measure α
f g : α → ℝ
s : Set α
hf : Measurable f
hg : Measurable g
hs : MeasurableSet s
⊢ MeasurableSet (regionBetween f g s)

tactic: refine'
  MeasurableSet.inter _
    ((measurableSet_lt (hf.comp measurable_fst) measurable_snd).inter
      (measurableSet_lt measurable_snd (hg.comp measurable_fst)))
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : MeasureTheory.Measure α
f g : α → ℝ
s : Set α
hf : Measurable f
hg : Measurable g
hs : MeasurableSet s
⊢ MeasurableSet ({a | a.fst ∈ s} ∩ {a | a.snd ∈ {a_1 | f a.fst < a_1} ∩ {a_1 | a_1 < g a.fst}})

tactic: exact measurable_fst hs
state_before: α : Type u_1
inst✝ : MeasurableSpace α
μ : MeasureTheory.Measure α
f g : α → ℝ
s : Set α
hf : Measurable f
hg : Measurable g
hs : MeasurableSet s
⊢ MeasurableSet {a | a.fst ∈ s}
Theorem: Ordnode.Bounded.weak_right
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: cases o₁ <;> trivial
state_before: α : Type u_1
inst✝ : Preorder α
o₁ : WithBot α
o₂ : WithTop α
h : Bounded nil o₁ o₂
⊢ Bounded nil o₁ ⊤
Theorem: Finset.abs_sum_of_nonneg
File: Mathlib/Algebra/BigOperators/Order.lean

tactic: rw [abs_of_nonneg (Finset.sum_nonneg hf)]
state_before: ι : Type u_2
α : Type ?u.93086
β : Type ?u.93089
M : Type ?u.93092
N : Type ?u.93095
G✝ : Type ?u.93098
k : Type ?u.93101
R : Type ?u.93104
G : Type u_1
inst✝ : LinearOrderedAddCommGroup G
f : ι → G
s : Finset ι
hf : ∀ (i : ι), i ∈ s → 0 ≤ f i
⊢ abs (∑ i in s, f i) = ∑ i in s, f i
Theorem: compl_sInf
File: Mathlib/Order/CompleteBooleanAlgebra.lean

tactic: simp only [sInf_eq_iInf, compl_iInf]
state_before: α : Type u
β : Type v
ι : Sort w
κ : ι → Sort ?u.26865
inst✝ : CompleteBooleanAlgebra α
a b : α
s : Set α
f : ι → α
⊢ sInf sᶜ = ⨆ (i : α) (_ : i ∈ s), iᶜ
Theorem: Real.sin_arcsin'
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: simpa [arcsin, IccExtend_of_mem _ _ hx, -OrderIso.apply_symm_apply] using
  Subtype.ext_iff.1 (sinOrderIso.apply_symm_apply ⟨x, hx⟩)
state_before: x : ℝ
hx : x ∈ Icc (-1) 1
⊢ sin (arcsin x) = x
Theorem: gauge_le_of_mem
File: Mathlib/Analysis/Convex/Gauge.lean

tactic: obtain rfl | ha' := ha.eq_or_lt
state_before: 𝕜 : Type ?u.46236
E : Type u_1
F : Type ?u.46242
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
ha : 0 ≤ a
hx : x ∈ a • s
⊢ gauge s x ≤ a

tactic: rw [mem_singleton_iff.1 (zero_smul_set_subset _ hx), gauge_zero]
state_before: case inl
𝕜 : Type ?u.46236
E : Type u_1
F : Type ?u.46242
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
x : E
ha : 0 ≤ 0
hx : x ∈ 0 • s
⊢ gauge s x ≤ 0

tactic: exact csInf_le gauge_set_bddBelow ⟨ha', hx⟩
state_before: case inr
𝕜 : Type ?u.46236
E : Type u_1
F : Type ?u.46242
inst✝¹ : AddCommGroup E
inst✝ : Module ℝ E
s t : Set E
a : ℝ
x : E
ha : 0 ≤ a
hx : x ∈ a • s
ha' : 0 < a
⊢ gauge s x ≤ a
Theorem: TensorProduct.liftAux.smul
File: Mathlib/LinearAlgebra/TensorProduct.lean

tactic: simp_rw [← tmul_smul, liftAux_tmul, (f p).map_smul]
state_before: R : Type u_1
inst✝¹⁴ : CommSemiring R
R' : Type ?u.537847
inst✝¹³ : Monoid R'
R'' : Type ?u.537853
inst✝¹² : Semiring R''
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type ?u.537868
S : Type ?u.537871
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
f : M →ₗ[R] N →ₗ[R] P
r : R
x : M ⊗[R] N
p : M
q : N
⊢ ↑(liftAux f) (r • p ⊗ₜ[R] q) = r • ↑(liftAux f) (p ⊗ₜ[R] q)

tactic: simp_rw [smul_add, (liftAux f).map_add, ih1, ih2, smul_add]
state_before: R : Type u_1
inst✝¹⁴ : CommSemiring R
R' : Type ?u.537847
inst✝¹³ : Monoid R'
R'' : Type ?u.537853
inst✝¹² : Semiring R''
M : Type u_2
N : Type u_3
P : Type u_4
Q : Type ?u.537868
S : Type ?u.537871
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
f : M →ₗ[R] N →ₗ[R] P
r : R
x p q : M ⊗[R] N
ih1 : ↑(liftAux f) (r • p) = r • ↑(liftAux f) p
ih2 : ↑(liftAux f) (r • q) = r • ↑(liftAux f) q
⊢ ↑(liftAux f) (r • (p + q)) = r • ↑(liftAux f) (p + q)
Theorem: iUnion_Ioc_int_cast
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simpa only [zero_add] using iUnion_Ioc_add_int_cast (0 : α)
state_before: α : Type u_1
inst✝¹ : LinearOrderedRing α
inst✝ : Archimedean α
a : α
⊢ (⋃ (n : ℤ), Ioc (↑n) (↑n + 1)) = univ
Theorem: not_isLeftRegular_zero_iff
File: Mathlib/Algebra/Regular/Basic.lean

tactic: rw [nontrivial_iff, not_iff_comm, isLeftRegular_zero_iff_subsingleton, subsingleton_iff]
state_before: R : Type u_1
inst✝ : MulZeroClass R
a b : R
⊢ ¬IsLeftRegular 0 ↔ Nontrivial R

tactic: push_neg
state_before: R : Type u_1
inst✝ : MulZeroClass R
a b : R
⊢ (¬∃ x y, x ≠ y) ↔ ∀ (x y : R), x = y

tactic: exact Iff.rfl
state_before: R : Type u_1
inst✝ : MulZeroClass R
a b : R
⊢ (∀ (x y : R), x = y) ↔ ∀ (x y : R), x = y
Theorem: Finsupp.coe_basis
File: Mathlib/LinearAlgebra/FinsuppVectorSpace.lean

tactic: ext ⟨j, y⟩
state_before: R : Type u_2
M : Type u_3
ι : Type u_4
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
φ : ι → Type u_1
b : (i : ι) → Basis (φ i) R M
x✝ : (i : ι) × φ i
i : ι
x : φ i
⊢ ↑(Finsupp.basis b).repr
      (single { fst := i, snd := x }.fst (↑(b { fst := i, snd := x }.fst) { fst := i, snd := x }.snd)) =
    single { fst := i, snd := x } 1

tactic: by_cases h : i = j
state_before: case h.mk
R : Type u_2
M : Type u_3
ι : Type u_4
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
φ : ι → Type u_1
b : (i : ι) → Basis (φ i) R M
x✝ : (i : ι) × φ i
i : ι
x : φ i
j : ι
y : φ j
⊢ ↑(↑(Finsupp.basis b).repr
          (single { fst := i, snd := x }.fst (↑(b { fst := i, snd := x }.fst) { fst := i, snd := x }.snd)))
      { fst := j, snd := y } =
    ↑(single { fst := i, snd := x } 1) { fst := j, snd := y }

tactic: cases h
state_before: case pos
R : Type u_2
M : Type u_3
ι : Type u_4
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
φ : ι → Type u_1
b : (i : ι) → Basis (φ i) R M
x✝ : (i : ι) × φ i
i : ι
x : φ i
j : ι
y : φ j
h : i = j
⊢ ↑(↑(Finsupp.basis b).repr
          (single { fst := i, snd := x }.fst (↑(b { fst := i, snd := x }.fst) { fst := i, snd := x }.snd)))
      { fst := j, snd := y } =
    ↑(single { fst := i, snd := x } 1) { fst := j, snd := y }

tactic: simp only [basis_repr, single_eq_same, Basis.repr_self,
  Finsupp.single_apply_left sigma_mk_injective]
state_before: case pos.refl
R : Type u_2
M : Type u_3
ι : Type u_4
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
φ : ι → Type u_1
b : (i : ι) → Basis (φ i) R M
x✝ : (i : ι) × φ i
i : ι
x y : φ i
⊢ ↑(↑(Finsupp.basis b).repr
          (single { fst := i, snd := x }.fst (↑(b { fst := i, snd := x }.fst) { fst := i, snd := x }.snd)))
      { fst := i, snd := y } =
    ↑(single { fst := i, snd := x } 1) { fst := i, snd := y }

tactic: have : Sigma.mk i x ≠ Sigma.mk j y := fun h' => h <| congrArg (fun s => s.fst) h'
state_before: case neg
R : Type u_2
M : Type u_3
ι : Type u_4
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
φ : ι → Type u_1
b : (i : ι) → Basis (φ i) R M
x✝ : (i : ι) × φ i
i : ι
x : φ i
j : ι
y : φ j
h : ¬i = j
⊢ ↑(↑(Finsupp.basis b).repr
          (single { fst := i, snd := x }.fst (↑(b { fst := i, snd := x }.fst) { fst := i, snd := x }.snd)))
      { fst := j, snd := y } =
    ↑(single { fst := i, snd := x } 1) { fst := j, snd := y }

tactic: simp only [basis_repr, single_apply, h, this, false_and_iff, if_false, LinearEquiv.map_zero,
zero_apply]
state_before: case neg
R : Type u_2
M : Type u_3
ι : Type u_4
inst✝² : Semiring R
inst✝¹ : AddCommMonoid M
inst✝ : Module R M
φ : ι → Type u_1
b : (i : ι) → Basis (φ i) R M
x✝ : (i : ι) × φ i
i : ι
x : φ i
j : ι
y : φ j
h : ¬i = j
this : { fst := i, snd := x } ≠ { fst := j, snd := y }
⊢ ↑(↑(Finsupp.basis b).repr
          (single { fst := i, snd := x }.fst (↑(b { fst := i, snd := x }.fst) { fst := i, snd := x }.snd)))
      { fst := j, snd := y } =
    ↑(single { fst := i, snd := x } 1) { fst := j, snd := y }
Theorem: Localization.mulEquivOfQuotient_mk
File: Mathlib/GroupTheory/MonoidLocalization.lean

tactic: rw [mk_eq_monoidOf_mk'_apply]
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type ?u.3280447
inst✝ : CommMonoid P
f : Submonoid.LocalizationMap S N
x : M
y : { x // x ∈ S }
⊢ ↑(mulEquivOfQuotient f) (mk x y) = Submonoid.LocalizationMap.mk' f x y

tactic: exact mulEquivOfQuotient_mk' _ _
state_before: M : Type u_1
inst✝² : CommMonoid M
S : Submonoid M
N : Type u_2
inst✝¹ : CommMonoid N
P : Type ?u.3280447
inst✝ : CommMonoid P
f : Submonoid.LocalizationMap S N
x : M
y : { x // x ∈ S }
⊢ ↑(mulEquivOfQuotient f) (Submonoid.LocalizationMap.mk' (monoidOf S) x y) = Submonoid.LocalizationMap.mk' f x y
Theorem: Real.arcsin_eq_arccos
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Inverse.lean

tactic: rw [eq_comm, ← cos_arcsin]
state_before: x : ℝ
h : 0 ≤ x
⊢ arcsin x = arccos (sqrt (1 - x ^ 2))

tactic: exact
  arccos_cos (arcsin_nonneg.2 h)
    ((arcsin_le_pi_div_two _).trans (div_le_self pi_pos.le one_le_two))
state_before: x : ℝ
h : 0 ≤ x
⊢ arccos (cos (arcsin x)) = arcsin x
Theorem: rank_top
File: Mathlib/LinearAlgebra/Dimension.lean

tactic: have : (⊤ : Submodule R M) ≃ₗ[R] M := LinearEquiv.ofTop ⊤ rfl
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.78476
R : Type u
inst✝⁶ : Ring R
M : Type v
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type v'
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
M₁ : Type v
inst✝¹ : AddCommGroup M₁
inst✝ : Module R M₁
⊢ Module.rank R { x // x ∈ ⊤ } = Module.rank R M

tactic: rw [this.rank_eq]
state_before: K : Type u
V V₁ V₂ V₃ : Type v
V' V'₁ : Type v'
V'' : Type v''
ι : Type w
ι' : Type w'
η : Type u₁'
φ : η → Type ?u.78476
R : Type u
inst✝⁶ : Ring R
M : Type v
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type v'
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
M₁ : Type v
inst✝¹ : AddCommGroup M₁
inst✝ : Module R M₁
this : { x // x ∈ ⊤ } ≃ₗ[R] M
⊢ Module.rank R { x // x ∈ ⊤ } = Module.rank R M
Theorem: AffineBasis.coord_reindex
File: Mathlib/LinearAlgebra/AffineSpace/Basis.lean

tactic: ext
state_before: ι : Type u_5
ι' : Type u_4
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : AddCommGroup V
inst✝² : AffineSpace V P
inst✝¹ : Ring k
inst✝ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j : ι
e : ι ≃ ι'
i : ι'
⊢ coord (reindex b e) i = coord b (↑e.symm i)

tactic: classical simp [AffineBasis.coord]
state_before: case h
ι : Type u_5
ι' : Type u_4
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : AddCommGroup V
inst✝² : AffineSpace V P
inst✝¹ : Ring k
inst✝ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j : ι
e : ι ≃ ι'
i : ι'
p✝ : P
⊢ ↑(coord (reindex b e) i) p✝ = ↑(coord b (↑e.symm i)) p✝

tactic: simp [AffineBasis.coord]
state_before: case h
ι : Type u_5
ι' : Type u_4
k : Type u_1
V : Type u_2
P : Type u_3
inst✝³ : AddCommGroup V
inst✝² : AffineSpace V P
inst✝¹ : Ring k
inst✝ : Module k V
b : AffineBasis ι k P
s : Finset ι
i✝ j : ι
e : ι ≃ ι'
i : ι'
p✝ : P
⊢ ↑(coord (reindex b e) i) p✝ = ↑(coord b (↑e.symm i)) p✝
Theorem: Int.le_trans
File: Std/Data/Int/Lemmas.lean

tactic: rw [← hm, ← hn, Int.add_assoc, ofNat_add]
state_before: a b c : Int
h₁ : a ≤ b
h₂ : b ≤ c
n : Nat
hn : a + ↑n = b
m : Nat
hm : b + ↑m = c
⊢ a + ↑(n + m) = c
Theorem: compl_symmDiff_compl
File: Mathlib/Order/SymmDiff.lean

tactic: simp_rw [compl_sdiff_compl, sdiff_eq, symmDiff_eq]
state_before: ι : Type ?u.88691
α : Type u_1
β : Type ?u.88697
π : ι → Type ?u.88702
inst✝ : BooleanAlgebra α
a b c d : α
⊢ bᶜ \ aᶜ ⊔ aᶜ \ bᶜ = a ∆ b
Theorem: linear_isometry_complex_aux
File: Mathlib/Analysis/Complex/Isometry.lean

tactic: simp only [ext_iff, ← and_or_left, neg_re, I_re, neg_im, neg_zero]
state_before: f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
⊢ ↑f I = I ∨ ↑f I = -I

tactic: constructor
state_before: f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
⊢ (↑f I).re = 0 ∧ ((↑f I).im = I.im ∨ (↑f I).im = -I.im)

tactic: rw [← I_re]
state_before: case left
f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
⊢ (↑f I).re = 0

tactic: exact @LinearIsometry.re_apply_eq_re f.toLinearIsometry h I
state_before: case left
f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
⊢ (↑f I).re = I.re

tactic: apply @LinearIsometry.im_apply_eq_im_or_neg_of_re_apply_eq_re f.toLinearIsometry
state_before: case right
f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
⊢ (↑f I).im = I.im ∨ (↑f I).im = -I.im

tactic: intro z
state_before: case right.h₂
f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
⊢ ∀ (z : ℂ), (↑(LinearIsometryEquiv.toLinearIsometry f) z).re = z.re

tactic: rw [@LinearIsometry.re_apply_eq_re f.toLinearIsometry h]
state_before: case right.h₂
f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
z : ℂ
⊢ (↑(LinearIsometryEquiv.toLinearIsometry f) z).re = z.re

tactic: apply LinearIsometryEquiv.toLinearEquiv_injective
state_before: case refine'_2
f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
h0 : ↑f I = I ∨ ↑f I = -I
h' : ↑f I = -I
⊢ f = conjLie

tactic: apply Complex.basisOneI.ext'
state_before: case refine'_2.a
f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
h0 : ↑f I = I ∨ ↑f I = -I
h' : ↑f I = -I
⊢ f.toLinearEquiv = conjLie.toLinearEquiv

tactic: intro i
state_before: case refine'_2.a
f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
h0 : ↑f I = I ∨ ↑f I = -I
h' : ↑f I = -I
⊢ ∀ (i : Fin 2), ↑f.toLinearEquiv (↑basisOneI i) = ↑conjLie.toLinearEquiv (↑basisOneI i)

tactic: fin_cases i <;> simp [h, h']
state_before: case refine'_2.a
f : ℂ ≃ₗᵢ[ℝ] ℂ
h : ↑f 1 = 1
h0 : ↑f I = I ∨ ↑f I = -I
h' : ↑f I = -I
i : Fin 2
⊢ ↑f.toLinearEquiv (↑basisOneI i) = ↑conjLie.toLinearEquiv (↑basisOneI i)