tasksource/leandojo huggingface dataset:
Theorem: Set.Definable.inter
File: Mathlib/ModelTheory/Definability.lean

tactic: rcases hf with ⟨φ, rfl⟩
state_before: M : Type w
A : Set M
L : Language
inst✝ : Structure L M
α : Type u₁
β : Type ?u.10841
B : Set M
s f g : Set (α → M)
hf : Definable A L f
hg : Definable A L g
⊢ Definable A L (f ∩ g)

tactic: rcases hg with ⟨θ, rfl⟩
state_before: case intro
M : Type w
A : Set M
L : Language
inst✝ : Structure L M
α : Type u₁
β : Type ?u.10841
B : Set M
s g : Set (α → M)
hg : Definable A L g
φ : Formula (L[[↑A]]) α
⊢ Definable A L (setOf (Formula.Realize φ) ∩ g)

tactic: refine' ⟨φ ⊓ θ, _⟩
state_before: case intro.intro
M : Type w
A : Set M
L : Language
inst✝ : Structure L M
α : Type u₁
β : Type ?u.10841
B : Set M
s : Set (α → M)
φ θ : Formula (L[[↑A]]) α
⊢ Definable A L (setOf (Formula.Realize φ) ∩ setOf (Formula.Realize θ))

tactic: ext
state_before: case intro.intro
M : Type w
A : Set M
L : Language
inst✝ : Structure L M
α : Type u₁
β : Type ?u.10841
B : Set M
s : Set (α → M)
φ θ : Formula (L[[↑A]]) α
⊢ setOf (Formula.Realize φ) ∩ setOf (Formula.Realize θ) = setOf (Formula.Realize (φ ⊓ θ))

tactic: simp
state_before: case intro.intro.h
M : Type w
A : Set M
L : Language
inst✝ : Structure L M
α : Type u₁
β : Type ?u.10841
B : Set M
s : Set (α → M)
φ θ : Formula (L[[↑A]]) α
x✝ : α → M
⊢ x✝ ∈ setOf (Formula.Realize φ) ∩ setOf (Formula.Realize θ) ↔ x✝ ∈ setOf (Formula.Realize (φ ⊓ θ))
Theorem: Cardinal.le_of_dvd
File: Mathlib/SetTheory/Cardinal/Divisibility.lean

tactic: simpa only [hab, mul_one] using
  mul_le_mul_left' (one_le_iff_ne_zero.2 fun h : b = 0 => b0 (by rwa [h, mul_zero] at hab)) a
state_before: a✝ b✝ : Cardinal
n m : ℕ
a x : Cardinal
b0 : x ≠ 0
b : Cardinal
hab : x = a * b
⊢ a ≤ x

tactic: rwa [h, mul_zero] at hab
state_before: a✝ b✝ : Cardinal
n m : ℕ
a x : Cardinal
b0 : x ≠ 0
b : Cardinal
hab : x = a * b
h : b = 0
⊢ x = 0
Theorem: sdiff_inf_sdiff
File: Mathlib/Order/BooleanAlgebra.lean

tactic: rw [inf_inf_sdiff]
state_before: α : Type u
β : Type ?u.4198
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ ⊥ = x ⊓ y ⊓ x \ y

tactic: rw [sup_inf_sdiff]
state_before: α : Type u
β : Type ?u.4198
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x ⊓ y ⊓ x \ y = x ⊓ (y ⊓ x ⊔ y \ x) ⊓ x \ y

tactic: rw [inf_sup_left]
state_before: α : Type u
β : Type ?u.4198
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x ⊓ (y ⊓ x ⊔ y \ x) ⊓ x \ y = (x ⊓ (y ⊓ x) ⊔ x ⊓ y \ x) ⊓ x \ y

tactic: ac_rfl
state_before: α : Type u
β : Type ?u.4198
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (x ⊓ (y ⊓ x) ⊔ x ⊓ y \ x) ⊓ x \ y = (y ⊓ (x ⊓ x) ⊔ x ⊓ y \ x) ⊓ x \ y

tactic: rw [inf_idem]
state_before: α : Type u
β : Type ?u.4198
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (y ⊓ (x ⊓ x) ⊔ x ⊓ y \ x) ⊓ x \ y = (y ⊓ x ⊔ x ⊓ y \ x) ⊓ x \ y

tactic: rw [inf_sup_right, @inf_comm _ _ x y]
state_before: α : Type u
β : Type ?u.4198
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (y ⊓ x ⊔ x ⊓ y \ x) ⊓ x \ y = x ⊓ y ⊓ x \ y ⊔ x ⊓ y \ x ⊓ x \ y

tactic: rw [inf_inf_sdiff, bot_sup_eq]
state_before: α : Type u
β : Type ?u.4198
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x ⊓ y ⊓ x \ y ⊔ x ⊓ y \ x ⊓ x \ y = x ⊓ y \ x ⊓ x \ y

tactic: ac_rfl
state_before: α : Type u
β : Type ?u.4198
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x ⊓ y \ x ⊓ x \ y = x ⊓ x \ y ⊓ y \ x

tactic: rw [inf_of_le_right sdiff_le']
state_before: α : Type u
β : Type ?u.4198
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ x ⊓ x \ y ⊓ y \ x = x \ y ⊓ y \ x
Theorem: LiouvilleWith.int_add_iff
File: Mathlib/NumberTheory/Liouville/LiouvilleWith.lean

tactic: rw [add_comm, add_int_iff]
state_before: p q x y : ℝ
r : ℚ
m : ℤ
n : ℕ
⊢ LiouvilleWith p (↑m + x) ↔ LiouvilleWith p x
Theorem: IntervalIntegrable.comp_mul_right
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simpa only [mul_comm] using comp_mul_left hf c
state_before: ι : Type ?u.7203111
𝕜 : Type ?u.7203114
E : Type u_1
F : Type ?u.7203120
A : Type ?u.7203123
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedRing A
f g : ℝ → E
a b : ℝ
μ : MeasureTheory.Measure ℝ
hf : IntervalIntegrable f volume a b
c : ℝ
⊢ IntervalIntegrable (fun x => f (x * c)) volume (a / c) (b / c)
Theorem: Set.iUnion₂_eq_univ_iff
File: Mathlib/Data/Set/Lattice.lean

tactic: simp only [iUnion_eq_univ_iff, mem_iUnion]
state_before: α : Type u_1
β : Type ?u.128133
γ : Type ?u.128136
ι : Sort u_2
ι' : Sort ?u.128142
ι₂ : Sort ?u.128145
κ : ι → Sort u_3
κ₁ : ι → Sort ?u.128155
κ₂ : ι → Sort ?u.128160
κ' : ι' → Sort ?u.128165
s : (i : ι) → κ i → Set α
⊢ (⋃ (i : ι) (j : κ i), s i j) = univ ↔ ∀ (a : α), ∃ i j, a ∈ s i j
Theorem: hasStrictDerivAt_exp_smul_const_of_mem_ball
File: Mathlib/Analysis/SpecialFunctions/Exponential.lean

tactic: simpa using (hasStrictFDerivAt_exp_smul_const_of_mem_ball 𝕂 x t htx).hasStrictDerivAt
state_before: 𝕂 : Type u_2
𝕊 : Type ?u.195497
𝔸 : Type u_1
inst✝⁹ : NontriviallyNormedField 𝕂
inst✝⁸ : CharZero 𝕂
inst✝⁷ : NormedCommRing 𝕊
inst✝⁶ : NormedRing 𝔸
inst✝⁵ : NormedSpace 𝕂 𝕊
inst✝⁴ : NormedAlgebra 𝕂 𝔸
inst✝³ : Algebra 𝕊 𝔸
inst✝² : ContinuousSMul 𝕊 𝔸
inst✝¹ : IsScalarTower 𝕂 𝕊 𝔸
inst✝ : CompleteSpace 𝔸
x : 𝔸
t : 𝕂
htx : t • x ∈ EMetric.ball 0 (FormalMultilinearSeries.radius (expSeries 𝕂 𝔸))
⊢ HasStrictDerivAt (fun u => exp 𝕂 (u • x)) (exp 𝕂 (t • x) * x) t
Theorem: MeasureTheory.set_lintegral_strict_mono
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: simp [hs]
state_before: α : Type u_1
β : Type ?u.988367
γ : Type ?u.988370
δ : Type ?u.988373
m : MeasurableSpace α
μ ν : Measure α
f g : α → ℝ≥0∞
s : Set α
hsm : MeasurableSet s
hs : ↑↑μ s ≠ 0
hg : Measurable g
hfi : (∫⁻ (x : α) in s, f x ∂μ) ≠ ⊤
h : ∀ᵐ (x : α) ∂μ, x ∈ s → f x < g x
⊢ Measure.restrict μ s ≠ 0
Theorem: PowerBasis.adjoin_gen_eq_top
File: Mathlib/RingTheory/PowerBasis.lean

tactic: rw [← toSubmodule_eq_top, _root_.eq_top_iff, ← B.basis.span_eq, Submodule.span_le]
state_before: R : Type u_1
S : Type u_2
T : Type ?u.713459
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
A : Type ?u.713762
B✝ : Type ?u.713765
inst✝⁴ : CommRing A
inst✝³ : CommRing B✝
inst✝² : IsDomain B✝
inst✝¹ : Algebra A B✝
K : Type ?u.714187
inst✝ : Field K
B : PowerBasis R S
⊢ adjoin R {B.gen} = ⊤

tactic: rintro x ⟨i, rfl⟩
state_before: R : Type u_1
S : Type u_2
T : Type ?u.713459
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
A : Type ?u.713762
B✝ : Type ?u.713765
inst✝⁴ : CommRing A
inst✝³ : CommRing B✝
inst✝² : IsDomain B✝
inst✝¹ : Algebra A B✝
K : Type ?u.714187
inst✝ : Field K
B : PowerBasis R S
⊢ Set.range ↑B.basis ⊆ ↑(↑Subalgebra.toSubmodule (adjoin R {B.gen}))

tactic: rw [B.basis_eq_pow i]
state_before: case intro
R : Type u_1
S : Type u_2
T : Type ?u.713459
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
A : Type ?u.713762
B✝ : Type ?u.713765
inst✝⁴ : CommRing A
inst✝³ : CommRing B✝
inst✝² : IsDomain B✝
inst✝¹ : Algebra A B✝
K : Type ?u.714187
inst✝ : Field K
B : PowerBasis R S
i : Fin B.dim
⊢ ↑B.basis i ∈ ↑(↑Subalgebra.toSubmodule (adjoin R {B.gen}))

tactic: exact Subalgebra.pow_mem _ (subset_adjoin (Set.mem_singleton _)) _
state_before: case intro
R : Type u_1
S : Type u_2
T : Type ?u.713459
inst✝⁷ : CommRing R
inst✝⁶ : Ring S
inst✝⁵ : Algebra R S
A : Type ?u.713762
B✝ : Type ?u.713765
inst✝⁴ : CommRing A
inst✝³ : CommRing B✝
inst✝² : IsDomain B✝
inst✝¹ : Algebra A B✝
K : Type ?u.714187
inst✝ : Field K
B : PowerBasis R S
i : Fin B.dim
⊢ B.gen ^ ↑i ∈ ↑(↑Subalgebra.toSubmodule (adjoin R {B.gen}))
Theorem: List.prod_map_neg
File: Mathlib/Data/List/BigOperators/Basic.lean

tactic: simpa only [id_eq, neg_mul, one_mul, map_const', prod_replicate, map_id]
  using @prod_map_mul α α _ l (fun _ => -1) id
state_before: ι : Type ?u.39549
α✝ : Type ?u.39552
M : Type ?u.39555
N : Type ?u.39558
P : Type ?u.39561
M₀ : Type ?u.39564
G : Type ?u.39567
R : Type ?u.39570
inst✝⁴ : Monoid M
inst✝³ : Monoid N
inst✝² : Monoid P
l✝ l₁ l₂ : List M
a : M
α : Type u_1
inst✝¹ : CommMonoid α
inst✝ : HasDistribNeg α
l : List α
⊢ prod (map Neg.neg l) = (-1) ^ length l * prod l
Theorem: Nat.cast_descFactorial
File: Mathlib/Data/Nat/Factorial/Cast.lean

tactic: rw [← pochhammer_eval_cast, pochhammer_nat_eq_descFactorial]
state_before: S : Type u_1
inst✝ : Semiring S
a b : ℕ
⊢ ↑(descFactorial a b) = Polynomial.eval (↑(a - (b - 1))) (pochhammer S b)

tactic: induction' b with b
state_before: S : Type u_1
inst✝ : Semiring S
a b : ℕ
⊢ ↑(descFactorial a b) = ↑(descFactorial (a - (b - 1) + b - 1) b)

tactic: simp
state_before: case zero
S : Type u_1
inst✝ : Semiring S
a b : ℕ
⊢ ↑(descFactorial a zero) = ↑(descFactorial (a - (zero - 1) + zero - 1) zero)

tactic: simp_rw [add_succ, succ_sub_one]
state_before: case succ
S : Type u_1
inst✝ : Semiring S
a b✝ b : ℕ
n_ih✝ : ↑(descFactorial a b) = ↑(descFactorial (a - (b - 1) + b - 1) b)
⊢ ↑(descFactorial a (succ b)) = ↑(descFactorial (a - (succ b - 1) + succ b - 1) (succ b))

tactic: obtain h | h := le_total a b
state_before: case succ
S : Type u_1
inst✝ : Semiring S
a b✝ b : ℕ
n_ih✝ : ↑(descFactorial a b) = ↑(descFactorial (a - (b - 1) + b - 1) b)
⊢ ↑(descFactorial a (succ b)) = ↑(descFactorial (a - b + b) (succ b))

tactic: rw [descFactorial_of_lt (lt_succ_of_le h), descFactorial_of_lt (lt_succ_of_le _)]
state_before: case succ.inl
S : Type u_1
inst✝ : Semiring S
a b✝ b : ℕ
n_ih✝ : ↑(descFactorial a b) = ↑(descFactorial (a - (b - 1) + b - 1) b)
h : a ≤ b
⊢ ↑(descFactorial a (succ b)) = ↑(descFactorial (a - b + b) (succ b))

tactic: rw [tsub_eq_zero_iff_le.mpr h, zero_add]
state_before: S : Type u_1
inst✝ : Semiring S
a b✝ b : ℕ
n_ih✝ : ↑(descFactorial a b) = ↑(descFactorial (a - (b - 1) + b - 1) b)
h : a ≤ b
⊢ a - b + b ≤ b

tactic: rw [tsub_add_cancel_of_le h]
state_before: case succ.inr
S : Type u_1
inst✝ : Semiring S
a b✝ b : ℕ
n_ih✝ : ↑(descFactorial a b) = ↑(descFactorial (a - (b - 1) + b - 1) b)
h : b ≤ a
⊢ ↑(descFactorial a (succ b)) = ↑(descFactorial (a - b + b) (succ b))
Theorem: AddLECancellable.tsub_eq_iff_eq_add_of_le
File: Mathlib/Algebra/Order/Sub/Canonical.lean

tactic: rw [eq_comm, hb.eq_tsub_iff_add_eq_of_le h, eq_comm]
state_before: α : Type u_1
inst✝⁵ : AddCommSemigroup α
inst✝⁴ : PartialOrder α
inst✝³ : ExistsAddOfLE α
inst✝² : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
inst✝¹ : Sub α
inst✝ : OrderedSub α
a b c d : α
hb : AddLECancellable b
h : b ≤ a
⊢ a - b = c ↔ a = c + b
Theorem: AddCircle.coe_eq_zero_of_pos_iff
File: Mathlib/Topology/Instances/AddCircle.lean

tactic: rw [coe_eq_zero_iff]
state_before: 𝕜 : Type u_1
B : Type ?u.36107
inst✝² : LinearOrderedAddCommGroup 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
x : 𝕜
hx : 0 < x
⊢ ↑x = 0 ↔ ∃ n, n • p = x

tactic: constructor <;> rintro ⟨n, rfl⟩
state_before: 𝕜 : Type u_1
B : Type ?u.36107
inst✝² : LinearOrderedAddCommGroup 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
x : 𝕜
hx : 0 < x
⊢ (∃ n, n • p = x) ↔ ∃ n, n • p = x

tactic: replace hx : 0 < n
state_before: case mp.intro
𝕜 : Type u_1
B : Type ?u.36107
inst✝² : LinearOrderedAddCommGroup 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
n : ℤ
hx : 0 < n • p
⊢ ∃ n_1, n_1 • p = n • p

tactic: exact ⟨n.toNat, by rw [← coe_nat_zsmul, Int.toNat_of_nonneg hx.le]⟩
state_before: case mp.intro
𝕜 : Type u_1
B : Type ?u.36107
inst✝² : LinearOrderedAddCommGroup 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
n : ℤ
hx : 0 < n
⊢ ∃ n_1, n_1 • p = n • p

tactic: contrapose! hx
state_before: case hx
𝕜 : Type u_1
B : Type ?u.36107
inst✝² : LinearOrderedAddCommGroup 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
n : ℤ
hx : 0 < n • p
⊢ 0 < n

tactic: simpa only [← neg_nonneg, ← zsmul_neg, zsmul_neg'] using zsmul_nonneg hp.le (neg_nonneg.2 hx)
state_before: case hx
𝕜 : Type u_1
B : Type ?u.36107
inst✝² : LinearOrderedAddCommGroup 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
n : ℤ
hx : n ≤ 0
⊢ n • p ≤ 0

tactic: rw [← coe_nat_zsmul, Int.toNat_of_nonneg hx.le]
state_before: 𝕜 : Type u_1
B : Type ?u.36107
inst✝² : LinearOrderedAddCommGroup 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
n : ℤ
hx : 0 < n
⊢ Int.toNat n • p = n • p

tactic: exact ⟨(n : ℤ), by simp⟩
state_before: case mpr.intro
𝕜 : Type u_1
B : Type ?u.36107
inst✝² : LinearOrderedAddCommGroup 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
n : ℕ
hx : 0 < n • p
⊢ ∃ n_1, n_1 • p = n • p

tactic: simp
state_before: 𝕜 : Type u_1
B : Type ?u.36107
inst✝² : LinearOrderedAddCommGroup 𝕜
inst✝¹ : TopologicalSpace 𝕜
inst✝ : OrderTopology 𝕜
p : 𝕜
hp : 0 < p
n : ℕ
hx : 0 < n • p
⊢ ↑n • p = n • p
Theorem: Real.b_ne_one
File: Mathlib/Analysis/SpecialFunctions/Log/Base.lean

tactic: linarith
state_before: b x y : ℝ
b_pos : 0 < b
b_lt_one : b < 1
⊢ b ≠ 1
Theorem: Cardinal.max_aleph_eq
File: Mathlib/SetTheory/Cardinal/Ordinal.lean

tactic: cases' le_total (aleph o₁) (aleph o₂) with h h
state_before: o₁ o₂ : Ordinal
⊢ max (aleph o₁) (aleph o₂) = aleph (max o₁ o₂)

tactic: rw [max_eq_right h, max_eq_right (aleph_le.1 h)]
state_before: case inl
o₁ o₂ : Ordinal
h : aleph o₁ ≤ aleph o₂
⊢ max (aleph o₁) (aleph o₂) = aleph (max o₁ o₂)

tactic: rw [max_eq_left h, max_eq_left (aleph_le.1 h)]
state_before: case inr
o₁ o₂ : Ordinal
h : aleph o₂ ≤ aleph o₁
⊢ max (aleph o₁) (aleph o₂) = aleph (max o₁ o₂)
Theorem: Nat.mul_assoc
File: src/lean/Init/Data/Nat/Basic.lean

tactic: simp [mul_succ, Nat.mul_assoc n m k, Nat.left_distrib]
state_before: n m k : Nat
⊢ n * m * succ k = n * (m * succ k)
Theorem: one_pow
File: Mathlib/Algebra/GroupPower/Basic.lean

tactic: induction' n with n ih
state_before: α : Type ?u.9841
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝¹ : Monoid M
inst✝ : AddMonoid A
n : ℕ
⊢ 1 ^ n = 1

tactic: exact pow_zero _
state_before: case zero
α : Type ?u.9841
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝¹ : Monoid M
inst✝ : AddMonoid A
⊢ 1 ^ Nat.zero = 1

tactic: rw [pow_succ, ih, one_mul]
state_before: case succ
α : Type ?u.9841
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝¹ : Monoid M
inst✝ : AddMonoid A
n : ℕ
ih : 1 ^ n = 1
⊢ 1 ^ Nat.succ n = 1
Theorem: Even.pow_nonneg
File: Mathlib/Algebra/Parity.lean

tactic: cases' hn with k hk
state_before: F : Type ?u.106364
α : Type ?u.106367
β : Type ?u.106370
R : Type u_1
inst✝ : LinearOrderedRing R
a✝ : R
n : ℕ
hn : Even n
a : R
⊢ 0 ≤ a ^ n

tactic: simpa only [hk, two_mul] using pow_bit0_nonneg a k
state_before: case intro
F : Type ?u.106364
α : Type ?u.106367
β : Type ?u.106370
R : Type u_1
inst✝ : LinearOrderedRing R
a✝ : R
n : ℕ
a : R
k : ℕ
hk : n = k + k
⊢ 0 ≤ a ^ n
Theorem: norm_sub_eq_sqrt_iff_real_inner_eq_zero
File: Mathlib/Analysis/InnerProductSpace/Basic.lean

tactic: rw [← norm_sub_sq_eq_norm_sq_add_norm_sq_iff_real_inner_eq_zero, eq_comm,
  sqrt_eq_iff_mul_self_eq (add_nonneg (mul_self_nonneg _) (mul_self_nonneg _)) (norm_nonneg _)]
state_before: 𝕜 : Type ?u.3114913
E : Type ?u.3114916
F : Type u_1
inst✝⁴ : IsROrC 𝕜
inst✝³ : NormedAddCommGroup E
inst✝² : InnerProductSpace 𝕜 E
inst✝¹ : NormedAddCommGroup F
inst✝ : InnerProductSpace ℝ F
dec_E : DecidableEq E
x y : F
⊢ ‖x - y‖ = sqrt (‖x‖ * ‖x‖ + ‖y‖ * ‖y‖) ↔ inner x y = 0
Theorem: LinearOrderedField.smul_Ici
File: Mathlib/Algebra/Order/Pointwise.lean

tactic: ext x
state_before: α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
⊢ r • Ici a = Ici (r • a)

tactic: simp only [mem_smul_set, smul_eq_mul, mem_Ioi]
state_before: case h
α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
⊢ x ∈ r • Ici a ↔ x ∈ Ici (r • a)

tactic: constructor
state_before: case h
α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
⊢ (∃ y, y ∈ Ici a ∧ r * y = x) ↔ x ∈ Ici (r * a)

tactic: rintro ⟨a_w, a_h_left, rfl⟩
state_before: case h.mp
α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
⊢ (∃ y, y ∈ Ici a ∧ r * y = x) → x ∈ Ici (r * a)

tactic: exact (mul_le_mul_left hr).mpr a_h_left
state_before: case h.mp.intro.intro
α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
a_w : K
a_h_left : a_w ∈ Ici a
⊢ r * a_w ∈ Ici (r * a)

tactic: rintro h
state_before: case h.mpr
α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
⊢ x ∈ Ici (r * a) → ∃ y, y ∈ Ici a ∧ r * y = x

tactic: use x / r
state_before: case h.mpr
α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
h : x ∈ Ici (r * a)
⊢ ∃ y, y ∈ Ici a ∧ r * y = x

tactic: constructor
state_before: case h.mpr
α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
h : x ∈ Ici (r * a)
⊢ x / r ∈ Ici a ∧ r * (x / r) = x

tactic: exact (le_div_iff' hr).mpr h
state_before: case h.mpr.left
α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
h : x ∈ Ici (r * a)
⊢ x / r ∈ Ici a

case h.mpr.right
α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
h : x ∈ Ici (r * a)
⊢ r * (x / r) = x

tactic: exact mul_div_cancel' _ (ne_of_gt hr)
state_before: case h.mpr.right
α : Type ?u.65044
K : Type u_1
inst✝ : LinearOrderedField K
a b r : K
hr : 0 < r
x : K
h : x ∈ Ici (r * a)
⊢ r * (x / r) = x
Theorem: WeakDual.CharacterSpace.ext_ker
File: Mathlib/Topology/Algebra/Module/CharacterSpace.lean

tactic: ext x
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁷ : CommRing 𝕜
inst✝⁶ : NoZeroDivisors 𝕜
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : ContinuousAdd 𝕜
inst✝³ : ContinuousConstSMul 𝕜 𝕜
inst✝² : TopologicalSpace A
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
φ ψ : ↑(characterSpace 𝕜 A)
h : RingHom.ker φ = RingHom.ker ψ
⊢ φ = ψ

tactic: have : x - algebraMap 𝕜 A (ψ x) ∈ RingHom.ker φ := by
  simpa only [h, RingHom.mem_ker, map_sub, AlgHomClass.commutes] using sub_self (ψ x)
state_before: case h
𝕜 : Type u_1
A : Type u_2
inst✝⁷ : CommRing 𝕜
inst✝⁶ : NoZeroDivisors 𝕜
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : ContinuousAdd 𝕜
inst✝³ : ContinuousConstSMul 𝕜 𝕜
inst✝² : TopologicalSpace A
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
φ ψ : ↑(characterSpace 𝕜 A)
h : RingHom.ker φ = RingHom.ker ψ
x : A
⊢ ↑φ x = ↑ψ x

tactic: simpa only [h, RingHom.mem_ker, map_sub, AlgHomClass.commutes] using sub_self (ψ x)
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁷ : CommRing 𝕜
inst✝⁶ : NoZeroDivisors 𝕜
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : ContinuousAdd 𝕜
inst✝³ : ContinuousConstSMul 𝕜 𝕜
inst✝² : TopologicalSpace A
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
φ ψ : ↑(characterSpace 𝕜 A)
h : RingHom.ker φ = RingHom.ker ψ
x : A
⊢ x - ↑(algebraMap 𝕜 A) (↑ψ x) ∈ RingHom.ker φ

tactic: rwa [RingHom.mem_ker, map_sub, AlgHomClass.commutes, sub_eq_zero] at this
state_before: case h
𝕜 : Type u_1
A : Type u_2
inst✝⁷ : CommRing 𝕜
inst✝⁶ : NoZeroDivisors 𝕜
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : ContinuousAdd 𝕜
inst✝³ : ContinuousConstSMul 𝕜 𝕜
inst✝² : TopologicalSpace A
inst✝¹ : Ring A
inst✝ : Algebra 𝕜 A
φ ψ : ↑(characterSpace 𝕜 A)
h : RingHom.ker φ = RingHom.ker ψ
x : A
this : x - ↑(algebraMap 𝕜 A) (↑ψ x) ∈ RingHom.ker φ
⊢ ↑φ x = ↑ψ x
Theorem: Rat.zero_add
File: Mathlib/Data/Rat/Defs.lean

tactic: rw [← zero_divInt d, add_def'', zero_mul, zero_add, divInt_mul_right] <;> simp [h]
state_before: a b c : ℚ
n : ℤ
d : ℕ
h : d ≠ 0
⊢ 0 + n /. ↑d = n /. ↑d
Theorem: Cardinal.self_le_power
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rcases eq_or_ne a 0 with (rfl | ha)
state_before: α β : Type u
a b : Cardinal
hb : 1 ≤ b
⊢ a ≤ a ^ b

tactic: exact zero_le _
state_before: case inl
α β : Type u
b : Cardinal
hb : 1 ≤ b
⊢ 0 ≤ 0 ^ b

tactic: convert power_le_power_left ha hb
state_before: case inr
α β : Type u
a b : Cardinal
hb : 1 ≤ b
ha : a ≠ 0
⊢ a ≤ a ^ b

tactic: exact power_one.symm
state_before: case h.e'_3
α β : Type u
a b : Cardinal
hb : 1 ≤ b
ha : a ≠ 0
⊢ a = a ^ 1
Theorem: Finset.sup'_le
File: Mathlib/Data/Finset/Lattice.lean

tactic: rw [← WithBot.coe_le_coe, coe_sup']
state_before: F : Type ?u.247090
α : Type u_2
β : Type u_1
γ : Type ?u.247099
ι : Type ?u.247102
κ : Type ?u.247105
inst✝ : SemilatticeSup α
s : Finset β
H : Finset.Nonempty s
f : β → α
a : α
hs : ∀ (b : β), b ∈ s → f b ≤ a
⊢ sup' s H f ≤ a

tactic: exact Finset.sup_le fun b h => WithBot.coe_le_coe.2 <| hs b h
state_before: F : Type ?u.247090
α : Type u_2
β : Type u_1
γ : Type ?u.247099
ι : Type ?u.247102
κ : Type ?u.247105
inst✝ : SemilatticeSup α
s : Finset β
H : Finset.Nonempty s
f : β → α
a : α
hs : ∀ (b : β), b ∈ s → f b ≤ a
⊢ sup s (WithBot.some ∘ f) ≤ ↑a
Theorem: CategoryTheory.MonoidalCategory.associator_inv_naturality
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: rw [comp_inv_eq, assoc, associator_naturality]
state_before: C✝ : Type u
𝒞 : Category C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category C
inst✝ : MonoidalCategory C
U V W X✝ Y✝ Z✝ X Y Z X' Y' Z' : C
f : X ⟶ X'
g : Y ⟶ Y'
h : Z ⟶ Z'
⊢ (f ⊗ g ⊗ h) ≫ (α_ X' Y' Z').inv = (α_ X Y Z).inv ≫ ((f ⊗ g) ⊗ h)

tactic: simp
state_before: C✝ : Type u
𝒞 : Category C✝
inst✝² : MonoidalCategory C✝
C : Type u
inst✝¹ : Category C
inst✝ : MonoidalCategory C
U V W X✝ Y✝ Z✝ X Y Z X' Y' Z' : C
f : X ⟶ X'
g : Y ⟶ Y'
h : Z ⟶ Z'
⊢ f ⊗ g ⊗ h = (α_ X Y Z).inv ≫ (α_ X Y Z).hom ≫ (f ⊗ g ⊗ h)
Theorem: Nat.ModEq.pow_totient
File: Mathlib/FieldTheory/Finite/Basic.lean

tactic: rw [← ZMod.eq_iff_modEq_nat]
state_before: K : Type ?u.971204
R : Type ?u.971207
x n : ℕ
h : coprime x n
⊢ x ^ φ n ≡ 1 [MOD n]

tactic: let x' : Units (ZMod n) := ZMod.unitOfCoprime _ h
state_before: K : Type ?u.971204
R : Type ?u.971207
x n : ℕ
h : coprime x n
⊢ ↑(x ^ φ n) = ↑1

tactic: have := ZMod.pow_totient x'
state_before: K : Type ?u.971204
R : Type ?u.971207
x n : ℕ
h : coprime x n
x' : (ZMod n)ˣ := unitOfCoprime x h
⊢ ↑(x ^ φ n) = ↑1

tactic: apply_fun ((fun (x : Units (ZMod n)) => (x : ZMod n)) : Units (ZMod n) → ZMod n)  at this
state_before: K : Type ?u.971204
R : Type ?u.971207
x n : ℕ
h : coprime x n
x' : (ZMod n)ˣ := unitOfCoprime x h
this : x' ^ φ n = 1
⊢ ↑(x ^ φ n) = ↑1

tactic: simpa only [Nat.succ_eq_add_one, Nat.cast_pow, Units.val_one, Nat.cast_one,
  coe_unitOfCoprime, Units.val_pow_eq_pow_val]
state_before: K : Type ?u.971204
R : Type ?u.971207
x n : ℕ
h : coprime x n
x' : (ZMod n)ˣ := unitOfCoprime x h
this : ↑(x' ^ φ n) = ↑1
⊢ ↑(x ^ φ n) = ↑1
Theorem: Int.not_even_one
File: Mathlib/Data/Int/Parity.lean

tactic: rw [even_iff]
state_before: m n : ℤ
⊢ ¬Even 1

tactic: norm_num
state_before: m n : ℤ
⊢ ¬1 % 2 = 0
Theorem: Rel.interedges_biUnion_left
File: Mathlib/Combinatorics/SimpleGraph/Density.lean

tactic: ext
state_before: 𝕜 : Type ?u.8631
ι : Type u_1
κ : Type ?u.8637
α : Type u_3
β : Type u_2
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset ι
t : Finset β
f : ι → Finset α
⊢ interedges r (Finset.biUnion s f) t = Finset.biUnion s fun a => interedges r (f a) t

tactic: simp only [mem_biUnion, mem_interedges_iff, exists_and_right, ← and_assoc]
state_before: case a
𝕜 : Type ?u.8631
ι : Type u_1
κ : Type ?u.8637
α : Type u_3
β : Type u_2
inst✝³ : LinearOrderedField 𝕜
r : α → β → Prop
inst✝² : (a : α) → DecidablePred (r a)
s✝ s₁ s₂ : Finset α
t✝ t₁ t₂ : Finset β
a : α
b : β
δ : 𝕜
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
s : Finset ι
t : Finset β
f : ι → Finset α
a✝ : α × β
⊢ a✝ ∈ interedges r (Finset.biUnion s f) t ↔ a✝ ∈ Finset.biUnion s fun a => interedges r (f a) t
Theorem: Traversable.foldr_toList
File: Mathlib/Control/Fold.lean

tactic: change _ = Foldr.ofFreeMonoid _ (FreeMonoid.ofList <| toList xs) _
state_before: α β γ : Type u
t : Type u → Type u
inst✝¹ : Traversable t
inst✝ : IsLawfulTraversable t
f : α → β → β
xs : t α
x : β
⊢ foldr f x xs = List.foldr f x (toList xs)

tactic: rw [toList_spec, foldr, Foldr.get, FreeMonoid.ofList_toList, foldMap_hom_free,
  foldr.ofFreeMonoid_comp_of]
state_before: α β γ : Type u
t : Type u → Type u
inst✝¹ : Traversable t
inst✝ : IsLawfulTraversable t
f : α → β → β
xs : t α
x : β
⊢ foldr f x xs = ↑(Foldr.ofFreeMonoid f) (↑FreeMonoid.ofList (toList xs)) x