tasksource/leandojo huggingface dataset:
Theorem: Equiv.Perm.sign_of_cycleType
File: Mathlib/GroupTheory/Perm/Cycle/Type.lean

tactic: rw [sign_of_cycleType']
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
f : Perm α
⊢ ↑sign f = (-1) ^ (sum (cycleType f) + ↑card (cycleType f))

tactic: induction' f.cycleType using Multiset.induction_on with a s ihs
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
f : Perm α
⊢ prod (map (fun n => -(-1) ^ n) (cycleType f)) = (-1) ^ (sum (cycleType f) + ↑card (cycleType f))

tactic: rfl
state_before: case empty
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
f : Perm α
⊢ prod (map (fun n => -(-1) ^ n) 0) = (-1) ^ (sum 0 + ↑card 0)

tactic: rw [Multiset.map_cons, Multiset.prod_cons, Multiset.sum_cons, Multiset.card_cons, ihs]
state_before: case cons
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
f : Perm α
a : ℕ
s : Multiset ℕ
ihs : prod (map (fun n => -(-1) ^ n) s) = (-1) ^ (sum s + ↑card s)
⊢ prod (map (fun n => -(-1) ^ n) (a ::ₘ s)) = (-1) ^ (sum (a ::ₘ s) + ↑card (a ::ₘ s))

tactic: simp only [pow_add, pow_one, mul_neg_one, neg_mul, mul_neg, mul_assoc, mul_one]
state_before: case cons
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
f : Perm α
a : ℕ
s : Multiset ℕ
ihs : prod (map (fun n => -(-1) ^ n) s) = (-1) ^ (sum s + ↑card s)
⊢ -(-1) ^ a * (-1) ^ (sum s + ↑card s) = (-1) ^ (a + sum s + (↑card s + 1))
Theorem: frontier_inter_subset
File: Mathlib/Topology/Basic.lean

tactic: simp only [frontier_eq_closure_inter_closure, compl_inter, closure_union]
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s✝ s₁ s₂ t✝ : Set α
p p₁ p₂ : α → Prop
inst✝ : TopologicalSpace α
s t : Set α
⊢ frontier (s ∩ t) ⊆ frontier s ∩ closure t ∪ closure s ∩ frontier t

tactic: refine' (inter_subset_inter_left _ (closure_inter_subset_inter_closure s t)).trans_eq _
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s✝ s₁ s₂ t✝ : Set α
p p₁ p₂ : α → Prop
inst✝ : TopologicalSpace α
s t : Set α
⊢ closure (s ∩ t) ∩ (closure (sᶜ) ∪ closure (tᶜ)) ⊆
    closure s ∩ closure (sᶜ) ∩ closure t ∪ closure s ∩ (closure t ∩ closure (tᶜ))

tactic: simp only [inter_distrib_left, inter_distrib_right, inter_assoc, inter_comm (closure t)]
state_before: α : Type u
β : Type v
ι : Sort w
a : α
s✝ s₁ s₂ t✝ : Set α
p p₁ p₂ : α → Prop
inst✝ : TopologicalSpace α
s t : Set α
⊢ closure s ∩ closure t ∩ (closure (sᶜ) ∪ closure (tᶜ)) =
    closure s ∩ closure (sᶜ) ∩ closure t ∪ closure s ∩ (closure t ∩ closure (tᶜ))
Theorem: Polynomial.sum_add'
File: Mathlib/Data/Polynomial/Basic.lean

tactic: simp [sum_def, Finset.sum_add_distrib]
state_before: R : Type u
a b : R
m n : ℕ
inst✝¹ : Semiring R
p✝ q : R[X]
S : Type u_1
inst✝ : AddCommMonoid S
p : R[X]
f g : ℕ → R → S
⊢ sum p (f + g) = sum p f + sum p g
Theorem: AlternatingMap.curryLeft_compLinearMap
File: Mathlib/LinearAlgebra/Alternating.lean

tactic: refine' Fin.cases _ _
state_before: R : Type ?u.1350987
inst✝¹⁹ : Semiring R
M : Type ?u.1350993
inst✝¹⁸ : AddCommMonoid M
inst✝¹⁷ : Module R M
N : Type ?u.1351025
inst✝¹⁶ : AddCommMonoid N
inst✝¹⁵ : Module R N
P : Type ?u.1351055
inst✝¹⁴ : AddCommMonoid P
inst✝¹³ : Module R P
M' : Type ?u.1351085
inst✝¹² : AddCommGroup M'
inst✝¹¹ : Module R M'
N' : Type ?u.1351473
inst✝¹⁰ : AddCommGroup N'
inst✝⁹ : Module R N'
ι : Type ?u.1351861
ι' : Type ?u.1351864
ι'' : Type ?u.1351867
R' : Type u_1
M'' : Type u_3
M₂'' : Type u_2
N'' : Type u_4
N₂'' : Type ?u.1351882
inst✝⁸ : CommSemiring R'
inst✝⁷ : AddCommMonoid M''
inst✝⁶ : AddCommMonoid M₂''
inst✝⁵ : AddCommMonoid N''
inst✝⁴ : AddCommMonoid N₂''
inst✝³ : Module R' M''
inst✝² : Module R' M₂''
inst✝¹ : Module R' N''
inst✝ : Module R' N₂''
n : ℕ
g : M₂'' →ₗ[R'] M''
f : AlternatingMap R' M'' N'' (Fin (Nat.succ n))
m : M₂''
v : Fin n → M₂''
⊢ ∀ (x : Fin (Nat.succ n)),
    ↑((fun x => g) x) (Matrix.vecCons m v x) = Matrix.vecCons (↑g m) (fun i => ↑((fun x => g) i) (v i)) x

tactic: rfl
state_before: case refine'_1
R : Type ?u.1350987
inst✝¹⁹ : Semiring R
M : Type ?u.1350993
inst✝¹⁸ : AddCommMonoid M
inst✝¹⁷ : Module R M
N : Type ?u.1351025
inst✝¹⁶ : AddCommMonoid N
inst✝¹⁵ : Module R N
P : Type ?u.1351055
inst✝¹⁴ : AddCommMonoid P
inst✝¹³ : Module R P
M' : Type ?u.1351085
inst✝¹² : AddCommGroup M'
inst✝¹¹ : Module R M'
N' : Type ?u.1351473
inst✝¹⁰ : AddCommGroup N'
inst✝⁹ : Module R N'
ι : Type ?u.1351861
ι' : Type ?u.1351864
ι'' : Type ?u.1351867
R' : Type u_1
M'' : Type u_3
M₂'' : Type u_2
N'' : Type u_4
N₂'' : Type ?u.1351882
inst✝⁸ : CommSemiring R'
inst✝⁷ : AddCommMonoid M''
inst✝⁶ : AddCommMonoid M₂''
inst✝⁵ : AddCommMonoid N''
inst✝⁴ : AddCommMonoid N₂''
inst✝³ : Module R' M''
inst✝² : Module R' M₂''
inst✝¹ : Module R' N''
inst✝ : Module R' N₂''
n : ℕ
g : M₂'' →ₗ[R'] M''
f : AlternatingMap R' M'' N'' (Fin (Nat.succ n))
m : M₂''
v : Fin n → M₂''
⊢ ↑((fun x => g) 0) (Matrix.vecCons m v 0) = Matrix.vecCons (↑g m) (fun i => ↑((fun x => g) i) (v i)) 0

tactic: simp
state_before: case refine'_2
R : Type ?u.1350987
inst✝¹⁹ : Semiring R
M : Type ?u.1350993
inst✝¹⁸ : AddCommMonoid M
inst✝¹⁷ : Module R M
N : Type ?u.1351025
inst✝¹⁶ : AddCommMonoid N
inst✝¹⁵ : Module R N
P : Type ?u.1351055
inst✝¹⁴ : AddCommMonoid P
inst✝¹³ : Module R P
M' : Type ?u.1351085
inst✝¹² : AddCommGroup M'
inst✝¹¹ : Module R M'
N' : Type ?u.1351473
inst✝¹⁰ : AddCommGroup N'
inst✝⁹ : Module R N'
ι : Type ?u.1351861
ι' : Type ?u.1351864
ι'' : Type ?u.1351867
R' : Type u_1
M'' : Type u_3
M₂'' : Type u_2
N'' : Type u_4
N₂'' : Type ?u.1351882
inst✝⁸ : CommSemiring R'
inst✝⁷ : AddCommMonoid M''
inst✝⁶ : AddCommMonoid M₂''
inst✝⁵ : AddCommMonoid N''
inst✝⁴ : AddCommMonoid N₂''
inst✝³ : Module R' M''
inst✝² : Module R' M₂''
inst✝¹ : Module R' N''
inst✝ : Module R' N₂''
n : ℕ
g : M₂'' →ₗ[R'] M''
f : AlternatingMap R' M'' N'' (Fin (Nat.succ n))
m : M₂''
v : Fin n → M₂''
⊢ ∀ (i : Fin n),
    ↑((fun x => g) (Fin.succ i)) (Matrix.vecCons m v (Fin.succ i)) =
      Matrix.vecCons (↑g m) (fun i => ↑((fun x => g) i) (v i)) (Fin.succ i)
Theorem: Nat.div_lt_self
File: src/lean/Init/Data/Nat/Div.lean

tactic: rw [div_eq]
state_before: n k : Nat
hLtN : 0 < n
hLtK : 1 < k
⊢ n / k < n

tactic: cases (inferInstance : Decidable (0 < k ∧ k ≤ n)) with
| isFalse h => simp [hLtN, h]
| isTrue h =>
  suffices (n - k) / k + 1 < n by simp [h, this]
  have ⟨_, hKN⟩ := h
  have : (n - k) / k ≤ n - k := div_le_self (n - k) k
  have := Nat.add_le_of_le_sub hKN this
  exact Nat.lt_of_lt_of_le (Nat.add_lt_add_left hLtK _) this
state_before: n k : Nat
hLtN : 0 < n
hLtK : 1 < k
⊢ ite (0 < k ∧ k ≤ n) ((n - k) / k + 1) 0 < n

tactic: simp [hLtN, h]
state_before: case isFalse
n k : Nat
hLtN : 0 < n
hLtK : 1 < k
h : ¬(0 < k ∧ k ≤ n)
⊢ ite (0 < k ∧ k ≤ n) ((n - k) / k + 1) 0 < n

tactic: suffices (n - k) / k + 1 < n by simp [h, this]
state_before: case isTrue
n k : Nat
hLtN : 0 < n
hLtK : 1 < k
h : 0 < k ∧ k ≤ n
⊢ ite (0 < k ∧ k ≤ n) ((n - k) / k + 1) 0 < n

tactic: have ⟨_, hKN⟩ := h
state_before: case isTrue
n k : Nat
hLtN : 0 < n
hLtK : 1 < k
h : 0 < k ∧ k ≤ n
⊢ (n - k) / k + 1 < n

tactic: have : (n - k) / k ≤ n - k := div_le_self (n - k) k
state_before: case isTrue
n k : Nat
hLtN : 0 < n
hLtK : 1 < k
h : 0 < k ∧ k ≤ n
left✝ : 0 < k
hKN : k ≤ n
⊢ (n - k) / k + 1 < n

tactic: have := Nat.add_le_of_le_sub hKN this
state_before: case isTrue
n k : Nat
hLtN : 0 < n
hLtK : 1 < k
h : 0 < k ∧ k ≤ n
left✝ : 0 < k
hKN : k ≤ n
this : (n - k) / k ≤ n - k
⊢ (n - k) / k + 1 < n

tactic: exact Nat.lt_of_lt_of_le (Nat.add_lt_add_left hLtK _) this
state_before: case isTrue
n k : Nat
hLtN : 0 < n
hLtK : 1 < k
h : 0 < k ∧ k ≤ n
left✝ : 0 < k
hKN : k ≤ n
this✝ : (n - k) / k ≤ n - k
this : (n - k) / k + k ≤ n
⊢ (n - k) / k + 1 < n

tactic: simp [h, this]
state_before: n k : Nat
hLtN : 0 < n
hLtK : 1 < k
h : 0 < k ∧ k ≤ n
this : (n - k) / k + 1 < n
⊢ ite (0 < k ∧ k ≤ n) ((n - k) / k + 1) 0 < n
Theorem: GeneralizedContinuedFraction.IntFractPair.stream_succ_of_int
File: Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean

tactic: induction' n with n ih
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n✝ : ℕ
a : ℤ
n : ℕ
⊢ IntFractPair.stream (↑a) (n + 1) = none

tactic: refine' IntFractPair.stream_eq_none_of_fr_eq_zero (IntFractPair.stream_zero (a : K)) _
state_before: case zero
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
a : ℤ
⊢ IntFractPair.stream (↑a) (Nat.zero + 1) = none

tactic: simp only [IntFractPair.of, Int.fract_intCast]
state_before: case zero
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
a : ℤ
⊢ (IntFractPair.of ↑a).fr = 0

tactic: exact IntFractPair.succ_nth_stream_eq_none_iff.mpr (Or.inl ih)
state_before: case succ
K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n✝ : ℕ
a : ℤ
n : ℕ
ih : IntFractPair.stream (↑a) (n + 1) = none
⊢ IntFractPair.stream (↑a) (Nat.succ n + 1) = none
Theorem: Set.IsWf.min_union
File: Mathlib/Order/WellFoundedSet.lean

tactic: refine' le_antisymm (le_min (IsWf.min_le_min_of_subset (subset_union_left _ _))
  (IsWf.min_le_min_of_subset (subset_union_right _ _))) _
state_before: ι : Type ?u.131877
α : Type u_1
β : Type ?u.131883
inst✝ : LinearOrder α
s t : Set α
a : α
hs : IsWf s
hsn : Set.Nonempty s
ht : IsWf t
htn : Set.Nonempty t
⊢ min (_ : IsWf (s ∪ t)) (_ : Set.Nonempty (s ∪ t)) = Min.min (min hs hsn) (min ht htn)

tactic: rw [min_le_iff]
state_before: ι : Type ?u.131877
α : Type u_1
β : Type ?u.131883
inst✝ : LinearOrder α
s t : Set α
a : α
hs : IsWf s
hsn : Set.Nonempty s
ht : IsWf t
htn : Set.Nonempty t
⊢ Min.min (min hs hsn) (min ht htn) ≤ min (_ : IsWf (s ∪ t)) (_ : Set.Nonempty (s ∪ t))

tactic: exact ((mem_union _ _ _).1 ((hs.union ht).min_mem (union_nonempty.2 (.inl hsn)))).imp
  (hs.min_le _) (ht.min_le _)
state_before: ι : Type ?u.131877
α : Type u_1
β : Type ?u.131883
inst✝ : LinearOrder α
s t : Set α
a : α
hs : IsWf s
hsn : Set.Nonempty s
ht : IsWf t
htn : Set.Nonempty t
⊢ min hs hsn ≤ min (_ : IsWf (s ∪ t)) (_ : Set.Nonempty (s ∪ t)) ∨
    min ht htn ≤ min (_ : IsWf (s ∪ t)) (_ : Set.Nonempty (s ∪ t))
Theorem: RingHom.is_integral_map
File: Mathlib/RingTheory/IntegralClosure.lean

tactic: simp
state_before: R : Type u_1
S : Type u_2
A : Type ?u.6854
inst✝³ : CommRing R
inst✝² : Ring A
inst✝¹ : Ring S
f : R →+* S
inst✝ : Algebra R A
x : R
⊢ eval₂ f (↑f x) (X - ↑C x) = 0
Theorem: Finset.Ioo_eq_empty_iff
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: rw [← coe_eq_empty, coe_Ioo, Set.Ioo_eq_empty_iff]
state_before: ι : Type ?u.2143
α : Type u_1
inst✝² : Preorder α
inst✝¹ : LocallyFiniteOrder α
a a₁ a₂ b b₁ b₂ c x : α
inst✝ : DenselyOrdered α
⊢ Ioo a b = ∅ ↔ ¬a < b
Theorem: NormedSpace.polar_closure
File: Mathlib/Analysis/NormedSpace/Dual.lean

tactic: simpa [LinearMap.flip_flip] using
  (isClosed_polar _ _).preimage (inclusionInDoubleDual 𝕜 E).continuous
state_before: 𝕜 : Type u_2
inst✝² : NontriviallyNormedField 𝕜
E : Type u_1
inst✝¹ : SeminormedAddCommGroup E
inst✝ : NormedSpace 𝕜 E
s : Set E
⊢ IsClosed
    ((LinearMap.polar (LinearMap.flip (LinearMap.flip (dualPairing 𝕜 E))) ∘ ↑OrderDual.ofDual)
      (LinearMap.polar (LinearMap.flip (dualPairing 𝕜 E)) s))
Theorem: Equiv.Perm.two_dvd_card_support
File: Mathlib/GroupTheory/Perm/Cycle/Type.lean

tactic: rw [le_antisymm
    (Nat.le_of_dvd zero_lt_two <|
      (dvd_of_mem_cycleType hn).trans <| orderOf_dvd_of_pow_eq_one hσ)
    (two_le_of_mem_cycleType hn)]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
σ : Perm α
hσ : σ ^ 2 = 1
n : ℕ
hn : n ∈ cycleType σ
⊢ 2 ∣ n
Theorem: FormalMultilinearSeries.norm_changeOriginSeriesTerm
File: Mathlib/Analysis/Analytic/Basic.lean

tactic: simp only [changeOriginSeriesTerm, LinearIsometryEquiv.norm_map]
state_before: 𝕜 : Type u_3
E : Type u_1
F : Type u_2
G : Type ?u.1191203
inst✝⁶ : NontriviallyNormedField 𝕜
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace 𝕜 E
inst✝³ : NormedAddCommGroup F
inst✝² : NormedSpace 𝕜 F
inst✝¹ : NormedAddCommGroup G
inst✝ : NormedSpace 𝕜 G
p : FormalMultilinearSeries 𝕜 E F
x y : E
r R : ℝ≥0
k l : ℕ
s : Finset (Fin (k + l))
hs : Finset.card s = l
⊢ ‖changeOriginSeriesTerm p k l s hs‖ = ‖p (k + l)‖
Theorem: Nat.Primrec.casesOn1
File: Mathlib/Computability/Primrec.lean

tactic: simp
state_before: f : ℕ → ℕ
m : ℕ
hf : Nat.Primrec f
⊢ ∀ (n : ℕ), Nat.rec m (fun y IH => f (unpair (Nat.pair y IH)).fst) n = Nat.casesOn n m f
Theorem: Complex.tan_sq_div_one_add_tan_sq
File: Mathlib/Data/Complex/Exponential.lean

tactic: simp only [← tan_mul_cos hx, mul_pow, ← inv_one_add_tan_sq hx, div_eq_mul_inv, one_mul]
state_before: x✝ y x : ℂ
hx : cos x ≠ 0
⊢ tan x ^ 2 / (1 + tan x ^ 2) = sin x ^ 2
Theorem: Ordinal.nat_nadd
File: Mathlib/SetTheory/Ordinal/NaturalOps.lean

tactic: rw [nadd_comm, nadd_nat]
state_before: a b c : Ordinal
n : ℕ
⊢ ↑n ♯ a = a + ↑n
Theorem: AlgHom.ker_ker_sqare_lift
File: Mathlib/RingTheory/Ideal/Cotangent.lean

tactic: apply le_antisymm
state_before: R : Type u
S : Type v
S' : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : CommSemiring S
inst✝⁸ : Algebra S R
inst✝⁷ : CommSemiring S'
inst✝⁶ : Algebra S' R
inst✝⁵ : Algebra S S'
inst✝⁴ : IsScalarTower S S' R
I : Ideal R
A : Type u_1
B : Type u_2
inst✝³ : CommRing A
inst✝² : CommRing B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f : A →ₐ[R] B
⊢ RingHom.ker ↑(AlgHom.kerSquareLift f) = cotangentIdeal (RingHom.ker ↑f)

tactic: intro x hx
state_before: case a
R : Type u
S : Type v
S' : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : CommSemiring S
inst✝⁸ : Algebra S R
inst✝⁷ : CommSemiring S'
inst✝⁶ : Algebra S' R
inst✝⁵ : Algebra S S'
inst✝⁴ : IsScalarTower S S' R
I : Ideal R
A : Type u_1
B : Type u_2
inst✝³ : CommRing A
inst✝² : CommRing B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f : A →ₐ[R] B
⊢ RingHom.ker ↑(AlgHom.kerSquareLift f) ≤ cotangentIdeal (RingHom.ker ↑f)

tactic: obtain ⟨x, rfl⟩ := Ideal.Quotient.mk_surjective x
state_before: case a
R : Type u
S : Type v
S' : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : CommSemiring S
inst✝⁸ : Algebra S R
inst✝⁷ : CommSemiring S'
inst✝⁶ : Algebra S' R
inst✝⁵ : Algebra S S'
inst✝⁴ : IsScalarTower S S' R
I : Ideal R
A : Type u_1
B : Type u_2
inst✝³ : CommRing A
inst✝² : CommRing B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f : A →ₐ[R] B
x : A ⧸ RingHom.ker ↑f ^ 2
hx : x ∈ RingHom.ker ↑(AlgHom.kerSquareLift f)
⊢ x ∈ cotangentIdeal (RingHom.ker ↑f)

tactic: exact ⟨x, hx, rfl⟩
state_before: case a.intro
R : Type u
S : Type v
S' : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : CommSemiring S
inst✝⁸ : Algebra S R
inst✝⁷ : CommSemiring S'
inst✝⁶ : Algebra S' R
inst✝⁵ : Algebra S S'
inst✝⁴ : IsScalarTower S S' R
I : Ideal R
A : Type u_1
B : Type u_2
inst✝³ : CommRing A
inst✝² : CommRing B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f : A →ₐ[R] B
x : A
hx : ↑(Quotient.mk (RingHom.ker ↑f ^ 2)) x ∈ RingHom.ker ↑(AlgHom.kerSquareLift f)
⊢ ↑(Quotient.mk (RingHom.ker ↑f ^ 2)) x ∈ cotangentIdeal (RingHom.ker ↑f)

tactic: rintro _ ⟨x, hx, rfl⟩
state_before: case a
R : Type u
S : Type v
S' : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : CommSemiring S
inst✝⁸ : Algebra S R
inst✝⁷ : CommSemiring S'
inst✝⁶ : Algebra S' R
inst✝⁵ : Algebra S S'
inst✝⁴ : IsScalarTower S S' R
I : Ideal R
A : Type u_1
B : Type u_2
inst✝³ : CommRing A
inst✝² : CommRing B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f : A →ₐ[R] B
⊢ cotangentIdeal (RingHom.ker ↑f) ≤ RingHom.ker ↑(AlgHom.kerSquareLift f)

tactic: exact hx
state_before: case a.intro.intro
R : Type u
S : Type v
S' : Type w
inst✝¹⁰ : CommRing R
inst✝⁹ : CommSemiring S
inst✝⁸ : Algebra S R
inst✝⁷ : CommSemiring S'
inst✝⁶ : Algebra S' R
inst✝⁵ : Algebra S S'
inst✝⁴ : IsScalarTower S S' R
I : Ideal R
A : Type u_1
B : Type u_2
inst✝³ : CommRing A
inst✝² : CommRing B
inst✝¹ : Algebra R A
inst✝ : Algebra R B
f : A →ₐ[R] B
x : A
hx : x ∈ ↑(RingHom.ker ↑f)
⊢ ↑(RingHom.toSemilinearMap (Quotient.mk (RingHom.ker ↑f ^ 2))) x ∈ RingHom.ker ↑(AlgHom.kerSquareLift f)
Theorem: ne_one_of_mem_sphere
File: Mathlib/Analysis/Normed/Group/Basic.lean

tactic: rwa [norm_eq_of_mem_sphere' x]
state_before: 𝓕 : Type ?u.105197
𝕜 : Type ?u.105200
α : Type ?u.105203
ι : Type ?u.105206
κ : Type ?u.105209
E : Type u_1
F : Type ?u.105215
G : Type ?u.105218
inst✝² : SeminormedGroup E
inst✝¹ : SeminormedGroup F
inst✝ : SeminormedGroup G
s : Set E
a a₁ a₂ b b₁ b₂ : E
r r₁ r₂ : ℝ
hr : r ≠ 0
x : ↑(sphere 1 r)
⊢ ‖↑x‖ ≠ 0
Theorem: Option.pmap_eq_none_iff
File: Mathlib/Data/Option/Basic.lean

tactic: cases x <;> simp
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.12556
δ : Type ?u.12559
p : α → Prop
f : (a : α) → p a → β
x : Option α
h : ∀ (a : α), a ∈ x → p a
⊢ pmap f x h = none ↔ x = none
Theorem: CategoryTheory.Limits.image.ι_zero'
File: Mathlib/CategoryTheory/Limits/Shapes/ZeroMorphisms.lean

tactic: rw [image.eq_fac h]
state_before: C : Type u
inst✝⁵ : Category C
D : Type u'
inst✝⁴ : Category D
inst✝³ : HasZeroMorphisms C
inst✝² : HasZeroObject C
inst✝¹ : HasEqualizers C
X Y : C
f : X ⟶ Y
h : f = 0
inst✝ : HasImage f
⊢ ι f = 0

tactic: simp
state_before: C : Type u
inst✝⁵ : Category C
D : Type u'
inst✝⁴ : Category D
inst✝³ : HasZeroMorphisms C
inst✝² : HasZeroObject C
inst✝¹ : HasEqualizers C
X Y : C
f : X ⟶ Y
h : f = 0
inst✝ : HasImage f
⊢ (eqToIso h).hom ≫ ι 0 = 0
Theorem: inv_neg'
File: Mathlib/Algebra/Ring/Basic.lean

tactic: rw [eq_comm, eq_inv_iff_mul_eq_one, neg_mul, mul_neg, neg_neg, mul_left_inv]
state_before: α : Type u_1
inst✝¹ : Group α
inst✝ : HasDistribNeg α
a : α
⊢ (-a)⁻¹ = -a⁻¹
Theorem: NNReal.toNNReal_coe_nat
File: Mathlib/Data/Real/NNReal.lean

tactic: simp [Real.coe_toNNReal]
state_before: n : ℕ
⊢ ↑(Real.toNNReal ↑n) = ↑↑n
Theorem: CategoryTheory.Limits.colimit.isoColimitCocone_ι_hom
File: Mathlib/CategoryTheory/Limits/HasLimits.lean

tactic: dsimp [colimit.isoColimitCocone, IsColimit.coconePointUniqueUpToIso]
state_before: J : Type u₁
inst✝³ : Category J
K : Type u₂
inst✝² : Category K
C : Type u
inst✝¹ : Category C
F✝ F : J ⥤ C
inst✝ : HasColimit F
t : ColimitCocone F
j : J
⊢ ι F j ≫ (isoColimitCocone t).hom = t.cocone.ι.app j

tactic: aesop_cat
state_before: J : Type u₁
inst✝³ : Category J
K : Type u₂
inst✝² : Category K
C : Type u
inst✝¹ : Category C
F✝ F : J ⥤ C
inst✝ : HasColimit F
t : ColimitCocone F
j : J
⊢ ι F j ≫ desc F t.cocone = t.cocone.ι.app j
Theorem: Set.Ioc.coe_eq_one
File: Mathlib/Data/Set/Intervals/Instances.lean

tactic: symm
state_before: α : Type u_1
inst✝¹ : StrictOrderedSemiring α
inst✝ : Nontrivial α
x : ↑(Ioc 0 1)
⊢ ↑x = 1 ↔ x = 1

tactic: exact Subtype.ext_iff
state_before: α : Type u_1
inst✝¹ : StrictOrderedSemiring α
inst✝ : Nontrivial α
x : ↑(Ioc 0 1)
⊢ x = 1 ↔ ↑x = 1
Theorem: zero_le_padicValRat_of_nat
File: Mathlib/NumberTheory/Padics/PadicVal.lean

tactic: simp
state_before: p n : ℕ
⊢ 0 ≤ padicValRat p ↑n
Theorem: Function.Periodic.sub_nsmul_eq
File: Mathlib/Algebra/Periodic.lean

tactic: simpa only [sub_eq_add_neg] using h.neg_nsmul n x
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.99178
f g : α → β
c c₁ c₂ x : α
inst✝ : AddGroup α
h : Periodic f c
n : ℕ
⊢ f (x - n • c) = f x
Theorem: le_div_iff₀
File: Mathlib/Algebra/Order/WithZero.lean

tactic: rw [div_eq_mul_inv, le_mul_inv_iff₀ hc]
state_before: α : Type u_1
a b c d x y z : α
inst✝ : LinearOrderedCommGroupWithZero α
hc : c ≠ 0
⊢ a ≤ b / c ↔ a * c ≤ b
Theorem: toIocDiv_eq_sub
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: rw [toIocDiv_sub_eq_toIocDiv_add, zero_add]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c : α
n : ℤ
a b : α
⊢ toIocDiv hp a b = toIocDiv hp 0 (b - a)
Theorem: Finset.centroid_eq_of_inj_on_of_image_eq
File: Mathlib/LinearAlgebra/AffineSpace/Combination.lean

tactic: classical rw [s.centroid_eq_centroid_image_of_inj_on k hi rfl,
    s₂.centroid_eq_centroid_image_of_inj_on k hi₂ he]
state_before: k : Type u_4
V : Type u_5
P : Type u_2
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type u_3
s₂ : Finset ι₂
p : ι → P
hi : ∀ (i : ι), i ∈ s → ∀ (j : ι), j ∈ s → p i = p j → i = j
p₂ : ι₂ → P
hi₂ : ∀ (i : ι₂), i ∈ s₂ → ∀ (j : ι₂), j ∈ s₂ → p₂ i = p₂ j → i = j
he : p '' ↑s = p₂ '' ↑s₂
⊢ centroid k s p = centroid k s₂ p₂

tactic: rw [s.centroid_eq_centroid_image_of_inj_on k hi rfl,
s₂.centroid_eq_centroid_image_of_inj_on k hi₂ he]
state_before: k : Type u_4
V : Type u_5
P : Type u_2
inst✝³ : DivisionRing k
inst✝² : AddCommGroup V
inst✝¹ : Module k V
inst✝ : AffineSpace V P
ι : Type u_1
s : Finset ι
ι₂ : Type u_3
s₂ : Finset ι₂
p : ι → P
hi : ∀ (i : ι), i ∈ s → ∀ (j : ι), j ∈ s → p i = p j → i = j
p₂ : ι₂ → P
hi₂ : ∀ (i : ι₂), i ∈ s₂ → ∀ (j : ι₂), j ∈ s₂ → p₂ i = p₂ j → i = j
he : p '' ↑s = p₂ '' ↑s₂
⊢ centroid k s p = centroid k s₂ p₂
Theorem: InnerProductSpace.unique_continuousLinearMapOfBilin
File: Mathlib/Analysis/InnerProductSpace/Dual.lean

tactic: refine' ext_inner_right 𝕜 _
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), inner f w = ↑(↑B v) w
⊢ f = ↑B♯ v

tactic: intro w
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), inner f w = ↑(↑B v) w
⊢ ∀ (v_1 : E), inner f v_1 = inner (↑B♯ v) v_1

tactic: rw [continuousLinearMapOfBilin_apply]
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), inner f w = ↑(↑B v) w
w : E
⊢ inner f w = inner (↑B♯ v) w

tactic: exact is_lax_milgram w
state_before: 𝕜 : Type u_1
E : Type u_2
inst✝³ : IsROrC 𝕜
inst✝² : NormedAddCommGroup E
inst✝¹ : InnerProductSpace 𝕜 E
inst✝ : CompleteSpace E
B : E →L⋆[𝕜] E →L[𝕜] 𝕜
v f : E
is_lax_milgram : ∀ (w : E), inner f w = ↑(↑B v) w
w : E
⊢ inner f w = ↑(↑B v) w
Theorem: SimpleGraph.cliqueSet_eq_empty_iff
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

tactic: simp_rw [CliqueFree, Set.eq_empty_iff_forall_not_mem, mem_cliqueSet_iff]
state_before: α : Type u_1
G H : SimpleGraph α
n : ℕ
a b c : α
s : Finset α
⊢ cliqueSet G n = ∅ ↔ CliqueFree G n
Theorem: TendstoUniformlyOnFilter.tendsto_at
File: Mathlib/Topology/UniformSpace/UniformConvergence.lean

tactic: refine' Uniform.tendsto_nhds_right.mpr fun u hu => mem_map.mpr _
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
h : TendstoUniformlyOnFilter F f p p'
hx : 𝓟 {x} ≤ p'
⊢ Tendsto (fun n => F n x) p (𝓝 (f x))

tactic: filter_upwards [(h u hu).curry]
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
h : TendstoUniformlyOnFilter F f p p'
hx : 𝓟 {x} ≤ p'
u : Set (β × β)
hu : u ∈ 𝓤 β
⊢ (fun x_1 => (f x, F x_1 x)) ⁻¹' u ∈ p

tactic: intro i h
state_before: case h
α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
h : TendstoUniformlyOnFilter F f p p'
hx : 𝓟 {x} ≤ p'
u : Set (β × β)
hu : u ∈ 𝓤 β
⊢ ∀ (a : ι), (∀ᶠ (y : α) in p', (f y, F a y) ∈ u) → a ∈ (fun x_1 => (f x, F x_1 x)) ⁻¹' u

tactic: simpa using h.filter_mono hx
state_before: case h
α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : UniformSpace β
F : ι → α → β
f : α → β
s s' : Set α
x : α
p : Filter ι
p' : Filter α
g : ι → α
h✝ : TendstoUniformlyOnFilter F f p p'
hx : 𝓟 {x} ≤ p'
u : Set (β × β)
hu : u ∈ 𝓤 β
i : ι
h : ∀ᶠ (y : α) in p', (f y, F i y) ∈ u
⊢ i ∈ (fun x_1 => (f x, F x_1 x)) ⁻¹' u
Theorem: Subgroup.inv_subset_closure
File: Mathlib/GroupTheory/Subgroup/Pointwise.lean

tactic: rw [SetLike.mem_coe, ← Subgroup.inv_mem_iff]
state_before: α : Type ?u.649
G : Type u_1
A : Type ?u.655
S✝ : Type ?u.658
inst✝¹ : Group G
inst✝ : AddGroup A
s✝ S : Set G
s : G
hs : s ∈ S⁻¹
⊢ s ∈ ↑(closure S)

tactic: exact subset_closure (mem_inv.mp hs)
state_before: α : Type ?u.649
G : Type u_1
A : Type ?u.655
S✝ : Type ?u.658
inst✝¹ : Group G
inst✝ : AddGroup A
s✝ S : Set G
s : G
hs : s ∈ S⁻¹
⊢ s⁻¹ ∈ closure S
Theorem: Nat.cast_one
File: Mathlib/Data/Nat/Cast/Defs.lean

tactic: rw [cast_succ, Nat.cast_zero, zero_add]
state_before: R : Type u_1
inst✝ : AddMonoidWithOne R
⊢ ↑1 = 1