tasksource/leandojo huggingface dataset:
Theorem: ContDiffBump.hasCompactSupport_normed
File: Mathlib/Analysis/Calculus/BumpFunctionInner.lean

tactic: simp only [HasCompactSupport, f.tsupport_normed_eq (μ := μ), isCompact_closedBall]
state_before: E : Type u_1
X : Type ?u.2210912
inst✝⁹ : NormedAddCommGroup E
inst✝⁸ : NormedSpace ℝ E
inst✝⁷ : NormedAddCommGroup X
inst✝⁶ : NormedSpace ℝ X
inst✝⁵ : HasContDiffBump E
c : E
f : ContDiffBump c
x : E
n : ℕ∞
inst✝⁴ : MeasurableSpace E
μ : MeasureTheory.Measure E
inst✝³ : BorelSpace E
inst✝² : FiniteDimensional ℝ E
inst✝¹ : IsLocallyFiniteMeasure μ
inst✝ : Measure.IsOpenPosMeasure μ
⊢ HasCompactSupport (ContDiffBump.normed f μ)
Theorem: MeasureTheory.Conservative.ae_frequently_mem_of_mem_nhds
File: Mathlib/Dynamics/Ergodic/Conservative.lean

tactic: have : ∀ s ∈ countableBasis α, ∀ᵐ x ∂μ, x ∈ s → ∃ᶠ n in atTop, (f^[n]) x ∈ s := fun s hs =>
  h.ae_mem_imp_frequently_image_mem (isOpen_of_mem_countableBasis hs).measurableSet
state_before: ι : Type ?u.76491
α : Type u_1
inst✝³ : MeasurableSpace α
f✝ : α → α
s : Set α
μ✝ : Measure α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : OpensMeasurableSpace α
f : α → α
μ : Measure α
h : Conservative f μ
⊢ ∀ᵐ (x : α) ∂μ, ∀ (s : Set α), s ∈ 𝓝 x → ∃ᶠ (n : ℕ) in atTop, (f^[n]) x ∈ s

tactic: refine' ((ae_ball_iff <| countable_countableBasis α).2 this).mono fun x hx s hs => _
state_before: ι : Type ?u.76491
α : Type u_1
inst✝³ : MeasurableSpace α
f✝ : α → α
s : Set α
μ✝ : Measure α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : OpensMeasurableSpace α
f : α → α
μ : Measure α
h : Conservative f μ
this : ∀ (s : Set α), s ∈ countableBasis α → ∀ᵐ (x : α) ∂μ, x ∈ s → ∃ᶠ (n : ℕ) in atTop, (f^[n]) x ∈ s
⊢ ∀ᵐ (x : α) ∂μ, ∀ (s : Set α), s ∈ 𝓝 x → ∃ᶠ (n : ℕ) in atTop, (f^[n]) x ∈ s

tactic: rcases (isBasis_countableBasis α).mem_nhds_iff.1 hs with ⟨o, hoS, hxo, hos⟩
state_before: ι : Type ?u.76491
α : Type u_1
inst✝³ : MeasurableSpace α
f✝ : α → α
s✝ : Set α
μ✝ : Measure α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : OpensMeasurableSpace α
f : α → α
μ : Measure α
h : Conservative f μ
this : ∀ (s : Set α), s ∈ countableBasis α → ∀ᵐ (x : α) ∂μ, x ∈ s → ∃ᶠ (n : ℕ) in atTop, (f^[n]) x ∈ s
x : α
hx : ∀ (i : Set α), i ∈ countableBasis α → x ∈ i → ∃ᶠ (n : ℕ) in atTop, (f^[n]) x ∈ i
s : Set α
hs : s ∈ 𝓝 x
⊢ ∃ᶠ (n : ℕ) in atTop, (f^[n]) x ∈ s

tactic: exact (hx o hoS hxo).mono fun n hn => hos hn
state_before: case intro.intro.intro
ι : Type ?u.76491
α : Type u_1
inst✝³ : MeasurableSpace α
f✝ : α → α
s✝ : Set α
μ✝ : Measure α
inst✝² : TopologicalSpace α
inst✝¹ : SecondCountableTopology α
inst✝ : OpensMeasurableSpace α
f : α → α
μ : Measure α
h : Conservative f μ
this : ∀ (s : Set α), s ∈ countableBasis α → ∀ᵐ (x : α) ∂μ, x ∈ s → ∃ᶠ (n : ℕ) in atTop, (f^[n]) x ∈ s
x : α
hx : ∀ (i : Set α), i ∈ countableBasis α → x ∈ i → ∃ᶠ (n : ℕ) in atTop, (f^[n]) x ∈ i
s : Set α
hs : s ∈ 𝓝 x
o : Set α
hoS : o ∈ countableBasis α
hxo : x ∈ o
hos : o ⊆ s
⊢ ∃ᶠ (n : ℕ) in atTop, (f^[n]) x ∈ s
Theorem: IsLocallyConstant.comp
File: Mathlib/Topology/LocallyConstant/Basic.lean

tactic: rw [Set.preimage_comp]
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type ?u.3651
inst✝ : TopologicalSpace X
f : X → Y
hf : IsLocallyConstant f
g : Y → Z
s : Set Z
⊢ IsOpen (g ∘ f ⁻¹' s)

tactic: exact hf _
state_before: X : Type u_1
Y : Type u_2
Z : Type u_3
α : Type ?u.3651
inst✝ : TopologicalSpace X
f : X → Y
hf : IsLocallyConstant f
g : Y → Z
s : Set Z
⊢ IsOpen (f ⁻¹' (g ⁻¹' s))
Theorem: CategoryTheory.MonoidalCategory.prodMonoidal_leftUnitor_inv_snd
File: Mathlib/CategoryTheory/Monoidal/Category.lean

tactic: cases X
state_before: C : Type u
𝒞 : Category C
inst✝⁴ : MonoidalCategory C
C₁ : Type u₁
inst✝³ : Category C₁
inst✝² : MonoidalCategory C₁
C₂ : Type u₂
inst✝¹ : Category C₂
inst✝ : MonoidalCategory C₂
X : C₁ × C₂
⊢ (λ_ X).inv.snd = (λ_ X.snd).inv

tactic: rfl
state_before: case mk
C : Type u
𝒞 : Category C
inst✝⁴ : MonoidalCategory C
C₁ : Type u₁
inst✝³ : Category C₁
inst✝² : MonoidalCategory C₁
C₂ : Type u₂
inst✝¹ : Category C₂
inst✝ : MonoidalCategory C₂
fst✝ : C₁
snd✝ : C₂
⊢ (λ_ (fst✝, snd✝)).inv.snd = (λ_ (fst✝, snd✝).snd).inv
Theorem: Finset.piecewise_cases
File: Mathlib/Data/Finset/Basic.lean

tactic: by_cases hi : i ∈ s <;> simpa [hi]
state_before: α : Type u_1
β : Type ?u.300214
γ : Type ?u.300217
δ : α → Sort u_2
s : Finset α
f g : (i : α) → δ i
inst✝ : (j : α) → Decidable (j ∈ s)
i : α
p : δ i → Prop
hf : p (f i)
hg : p (g i)
⊢ p (piecewise s f g i)
Theorem: bddAbove_insert
File: Mathlib/Order/Bounds/Basic.lean

tactic: simp only [insert_eq, bddAbove_union, bddAbove_singleton, true_and_iff]
state_before: α : Type u
β : Type v
γ : Type w
ι : Sort x
inst✝² : Preorder α
inst✝¹ : Preorder β
s✝ t : Set α
a✝ b : α
inst✝ : SemilatticeSup γ
a : γ
s : Set γ
⊢ BddAbove (insert a s) ↔ BddAbove s
Theorem: Nat.Partrec.Code.eval_id
File: Mathlib/Computability/PartrecCode.lean

tactic: simp! [Seq.seq]
state_before: n : ℕ
⊢ eval Code.id n = Part.some n
Theorem: Nat.mul_lt_mul_pow_succ
File: Mathlib/Data/Nat/Pow.lean

tactic: rw [pow_succ, ← mul_assoc, mul_lt_mul_right (zero_lt_one.trans q1)]
state_before: n a q : ℕ
a0 : 0 < a
q1 : 1 < q
⊢ n * q < a * q ^ (n + 1)

tactic: exact lt_mul_of_one_le_of_lt (Nat.succ_le_iff.mpr a0) (Nat.lt_pow_self q1 n)
state_before: n a q : ℕ
a0 : 0 < a
q1 : 1 < q
⊢ n < a * q ^ n
Theorem: integral_comp_neg_Iic
File: Mathlib/MeasureTheory/Measure/Lebesgue/Integral.lean

tactic: have A : MeasurableEmbedding fun x : ℝ => -x :=
  (Homeomorph.neg ℝ).closedEmbedding.measurableEmbedding
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
c : ℝ
f : ℝ → E
⊢ (∫ (x : ℝ) in Iic c, f (-x)) = ∫ (x : ℝ) in Ioi (-c), f x

tactic: have := @MeasurableEmbedding.set_integral_map _ _ _ _ volume _ _ _ _ _  A f (Ici (-c))
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
c : ℝ
f : ℝ → E
A : MeasurableEmbedding fun x => -x
⊢ (∫ (x : ℝ) in Iic c, f (-x)) = ∫ (x : ℝ) in Ioi (-c), f x

tactic: rw [Measure.map_neg_eq_self (volume : Measure ℝ)] at this
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
c : ℝ
f : ℝ → E
A : MeasurableEmbedding fun x => -x
this : (∫ (y : ℝ) in Ici (-c), f y ∂Measure.map (fun x => -x) volume) = ∫ (x : ℝ) in (fun x => -x) ⁻¹' Ici (-c), f (-x)
⊢ (∫ (x : ℝ) in Iic c, f (-x)) = ∫ (x : ℝ) in Ioi (-c), f x

tactic: simp_rw [← integral_Ici_eq_integral_Ioi, this, neg_preimage, preimage_neg_Ici, neg_neg]
state_before: E : Type u_1
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
c : ℝ
f : ℝ → E
A : MeasurableEmbedding fun x => -x
this : (∫ (y : ℝ) in Ici (-c), f y) = ∫ (x : ℝ) in (fun x => -x) ⁻¹' Ici (-c), f (-x)
⊢ (∫ (x : ℝ) in Iic c, f (-x)) = ∫ (x : ℝ) in Ioi (-c), f x
Theorem: Computation.eq_thinkN
File: Mathlib/Data/Seq/Computation.lean

tactic: revert s
state_before: α : Type u
β : Type v
γ : Type w
s : Computation α
a : α
n : ℕ
h : Results s a n
⊢ s = thinkN (pure a) n

tactic: induction' n with n IH <;> intro s <;> apply recOn s (fun a' => _) fun s => _ <;> intro a h
state_before: α : Type u
β : Type v
γ : Type w
a : α
n : ℕ
⊢ ∀ {s : Computation α}, Results s a n → s = thinkN (pure a) n

tactic: rw [← eq_of_pure_mem h.mem]
state_before: α : Type u
β : Type v
γ : Type w
a✝ : α
s : Computation α
a : α
h : Results (pure a) a✝ Nat.zero
⊢ pure a = thinkN (pure a✝) Nat.zero

tactic: rfl
state_before: α : Type u
β : Type v
γ : Type w
a✝ : α
s : Computation α
a : α
h : Results (pure a) a✝ Nat.zero
⊢ pure a✝ = thinkN (pure a✝) Nat.zero

tactic: cases' of_results_think h with n h
state_before: α : Type u
β : Type v
γ : Type w
a✝ : α
s a : Computation α
h : Results (think a) a✝ Nat.zero
⊢ think a = thinkN (pure a✝) Nat.zero

tactic: cases h
state_before: case intro
α : Type u
β : Type v
γ : Type w
a✝ : α
s a : Computation α
h✝ : Results (think a) a✝ Nat.zero
n : ℕ
h : Results a a✝ n ∧ Nat.zero = n + 1
⊢ think a = thinkN (pure a✝) Nat.zero

tactic: contradiction
state_before: case intro.intro
α : Type u
β : Type v
γ : Type w
a✝ : α
s a : Computation α
h : Results (think a) a✝ Nat.zero
n : ℕ
left✝ : Results a a✝ n
right✝ : Nat.zero = n + 1
⊢ think a = thinkN (pure a✝) Nat.zero

tactic: have := h.len_unique (results_pure _)
state_before: α : Type u
β : Type v
γ : Type w
a✝ : α
n : ℕ
IH : ∀ {s : Computation α}, Results s a✝ n → s = thinkN (pure a✝) n
s : Computation α
a : α
h : Results (pure a) a✝ (Nat.succ n)
⊢ pure a = thinkN (pure a✝) (Nat.succ n)

tactic: contradiction
state_before: α : Type u
β : Type v
γ : Type w
a✝ : α
n : ℕ
IH : ∀ {s : Computation α}, Results s a✝ n → s = thinkN (pure a✝) n
s : Computation α
a : α
h : Results (pure a) a✝ (Nat.succ n)
this : Nat.succ n = 0
⊢ pure a = thinkN (pure a✝) (Nat.succ n)

tactic: rw [IH (results_think_iff.1 h)]
state_before: α : Type u
β : Type v
γ : Type w
a✝ : α
n : ℕ
IH : ∀ {s : Computation α}, Results s a✝ n → s = thinkN (pure a✝) n
s a : Computation α
h : Results (think a) a✝ (Nat.succ n)
⊢ think a = thinkN (pure a✝) (Nat.succ n)

tactic: rfl
state_before: α : Type u
β : Type v
γ : Type w
a✝ : α
n : ℕ
IH : ∀ {s : Computation α}, Results s a✝ n → s = thinkN (pure a✝) n
s a : Computation α
h : Results (think a) a✝ (Nat.succ n)
⊢ think (thinkN (pure a✝) n) = thinkN (pure a✝) (Nat.succ n)
Theorem: LinearMap.toMatrixAlgEquiv_reindexRange
File: Mathlib/LinearAlgebra/Matrix/ToLin.lean

tactic: simp_rw [LinearMap.toMatrixAlgEquiv_apply, Basis.reindexRange_self, Basis.reindexRange_repr]
state_before: R : Type u_2
inst✝¹⁰ : CommSemiring R
l : Type ?u.2593072
m : Type ?u.2593075
n : Type u_3
inst✝⁹ : Fintype n
inst✝⁸ : Fintype m
inst✝⁷ : DecidableEq n
M₁ : Type u_1
M₂ : Type ?u.2593099
inst✝⁶ : AddCommMonoid M₁
inst✝⁵ : AddCommMonoid M₂
inst✝⁴ : Module R M₁
inst✝³ : Module R M₂
v₁ : Basis n R M₁
v₂ : Basis m R M₂
M₃ : Type ?u.2593601
inst✝² : AddCommMonoid M₃
inst✝¹ : Module R M₃
v₃ : Basis l R M₃
inst✝ : DecidableEq M₁
f : M₁ →ₗ[R] M₁
k i : n
⊢ ↑(toMatrixAlgEquiv (Basis.reindexRange v₁)) f { val := ↑v₁ k, property := (_ : ↑v₁ k ∈ Set.range ↑v₁) }
      { val := ↑v₁ i, property := (_ : ↑v₁ i ∈ Set.range ↑v₁) } =
    ↑(toMatrixAlgEquiv v₁) f k i
Theorem: Relation.TransGen.head'_iff
File: Mathlib/Logic/Relation.lean

tactic: refine' ⟨fun h ↦ _, fun ⟨b, hab, hbc⟩ ↦ head' hab hbc⟩
state_before: α : Type u_1
β : Type ?u.21585
γ : Type ?u.21588
δ : Type ?u.21591
r : α → α → Prop
a b c d : α
⊢ TransGen r a c ↔ ∃ b, r a b ∧ ReflTransGen r b c

tactic: induction h
state_before: α : Type u_1
β : Type ?u.21585
γ : Type ?u.21588
δ : Type ?u.21591
r : α → α → Prop
a b c d : α
h : TransGen r a c
⊢ ∃ b, r a b ∧ ReflTransGen r b c

tactic: case single c hac => exact ⟨_, hac, by rfl⟩
state_before: case single
α : Type u_1
β : Type ?u.21585
γ : Type ?u.21588
δ : Type ?u.21591
r : α → α → Prop
a b c d b✝ : α
a✝ : r a b✝
⊢ ∃ b, r a b ∧ ReflTransGen r b b✝

case tail
α : Type u_1
β : Type ?u.21585
γ : Type ?u.21588
δ : Type ?u.21591
r : α → α → Prop
a b c d b✝ c✝ : α
a✝¹ : TransGen r a b✝
a✝ : r b✝ c✝
a_ih✝ : ∃ b, r a b ∧ ReflTransGen r b b✝
⊢ ∃ b, r a b ∧ ReflTransGen r b c✝

tactic: case tail b c _ hbc IH =>
rcases IH with ⟨d, had, hdb⟩
exact ⟨_, had, hdb.tail hbc⟩
state_before: case tail
α : Type u_1
β : Type ?u.21585
γ : Type ?u.21588
δ : Type ?u.21591
r : α → α → Prop
a b c d b✝ c✝ : α
a✝¹ : TransGen r a b✝
a✝ : r b✝ c✝
a_ih✝ : ∃ b, r a b ∧ ReflTransGen r b b✝
⊢ ∃ b, r a b ∧ ReflTransGen r b c✝

tactic: exact ⟨_, hac, by rfl⟩
state_before: α : Type u_1
β : Type ?u.21585
γ : Type ?u.21588
δ : Type ?u.21591
r : α → α → Prop
a b c✝ d c : α
hac : r a c
⊢ ∃ b, r a b ∧ ReflTransGen r b c

tactic: rfl
state_before: α : Type u_1
β : Type ?u.21585
γ : Type ?u.21588
δ : Type ?u.21591
r : α → α → Prop
a b c✝ d c : α
hac : r a c
⊢ ReflTransGen r c c

tactic: rcases IH with ⟨d, had, hdb⟩
state_before: α : Type u_1
β : Type ?u.21585
γ : Type ?u.21588
δ : Type ?u.21591
r : α → α → Prop
a b✝ c✝ d b c : α
a✝ : TransGen r a b
hbc : r b c
IH : ∃ b_1, r a b_1 ∧ ReflTransGen r b_1 b
⊢ ∃ b, r a b ∧ ReflTransGen r b c

tactic: exact ⟨_, had, hdb.tail hbc⟩
state_before: case intro.intro
α : Type u_1
β : Type ?u.21585
γ : Type ?u.21588
δ : Type ?u.21591
r : α → α → Prop
a b✝ c✝ d✝ b c : α
a✝ : TransGen r a b
hbc : r b c
d : α
had : r a d
hdb : ReflTransGen r d b
⊢ ∃ b, r a b ∧ ReflTransGen r b c
Theorem: SimpleGraph.Subgraph.edgeSet_sInf
File: Mathlib/Combinatorics/SimpleGraph/Subgraph.lean

tactic: ext e
state_before: ι : Sort ?u.112949
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
s : Set (Subgraph G)
⊢ edgeSet (sInf s) = (⋂ (G' : Subgraph G) (_ : G' ∈ s), edgeSet G') ∩ SimpleGraph.edgeSet G

tactic: induction e using Sym2.ind
state_before: case h
ι : Sort ?u.112949
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
s : Set (Subgraph G)
e : Sym2 V
⊢ e ∈ edgeSet (sInf s) ↔ e ∈ (⋂ (G' : Subgraph G) (_ : G' ∈ s), edgeSet G') ∩ SimpleGraph.edgeSet G

tactic: simp
state_before: case h.h
ι : Sort ?u.112949
V : Type u
W : Type v
G : SimpleGraph V
G₁ G₂ : Subgraph G
a b : V
s : Set (Subgraph G)
x✝ y✝ : V
⊢ Quotient.mk (Sym2.Rel.setoid V) (x✝, y✝) ∈ edgeSet (sInf s) ↔
    Quotient.mk (Sym2.Rel.setoid V) (x✝, y✝) ∈ (⋂ (G' : Subgraph G) (_ : G' ∈ s), edgeSet G') ∩ SimpleGraph.edgeSet G
Theorem: MvPFunctor.comp.mk_get
File: Mathlib/Data/PFunctor/Multivariate/Basic.lean

tactic: rfl
state_before: n m : ℕ
P : MvPFunctor n
Q : Fin2 n → MvPFunctor m
α β : TypeVec m
x : Obj (comp P Q) α
⊢ mk (get x) = x
Theorem: ContinuousMap.Nullhomotopic.comp_left
File: Mathlib/Topology/Homotopy/Contractible.lean

tactic: cases' hf with y hy
state_before: X : Type u_3
Y : Type u_1
Z : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
f : C(Y, Z)
hf : Nullhomotopic f
g : C(X, Y)
⊢ Nullhomotopic (comp f g)

tactic: use y
state_before: case intro
X : Type u_3
Y : Type u_1
Z : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
f : C(Y, Z)
g : C(X, Y)
y : Z
hy : Homotopic f (const Y y)
⊢ Nullhomotopic (comp f g)

tactic: exact Homotopic.hcomp (Homotopic.refl g) hy
state_before: case intro
X : Type u_3
Y : Type u_1
Z : Type u_2
inst✝² : TopologicalSpace X
inst✝¹ : TopologicalSpace Y
inst✝ : TopologicalSpace Z
f : C(Y, Z)
g : C(X, Y)
y : Z
hy : Homotopic f (const Y y)
⊢ Homotopic (comp f g) (const X y)
Theorem: FirstOrder.Language.Theory.SemanticallyEquivalent.ex
File: Mathlib/ModelTheory/Satisfiability.lean

tactic: simp_rw [SemanticallyEquivalent, ModelsBoundedFormula, BoundedFormula.realize_iff,
  BoundedFormula.realize_ex]
state_before: L : Language
T : Theory L
α : Type w
n : ℕ
φ ψ : BoundedFormula L α (n + 1)
h : SemanticallyEquivalent T φ ψ
⊢ SemanticallyEquivalent T (∃'φ) (∃'ψ)

tactic: exact fun M v xs => exists_congr fun a => h.realize_bd_iff
state_before: L : Language
T : Theory L
α : Type w
n : ℕ
φ ψ : BoundedFormula L α (n + 1)
h : SemanticallyEquivalent T φ ψ
⊢ ∀ (M : ModelType T) (v : α → ↑M) (xs : Fin n → ↑M),
    (∃ a, BoundedFormula.Realize φ v (Fin.snoc xs a)) ↔ ∃ a, BoundedFormula.Realize ψ v (Fin.snoc xs a)
Theorem: Finsupp.mapRange_single
File: Mathlib/Data/Finsupp/Defs.lean

tactic: classical simpa only [single_eq_pi_single] using Pi.apply_single _ (fun _ => hf) a _ a'
state_before: α : Type u_3
β : Type ?u.180467
γ : Type ?u.180470
ι : Type ?u.180473
M : Type u_2
M' : Type ?u.180479
N : Type u_1
P : Type ?u.180485
G : Type ?u.180488
H : Type ?u.180491
R : Type ?u.180494
S : Type ?u.180497
inst✝² : Zero M
inst✝¹ : Zero N
inst✝ : Zero P
f : M → N
hf : f 0 = 0
a : α
b : M
a' : α
⊢ ↑(mapRange f hf (single a b)) a' = ↑(single a (f b)) a'

tactic: simpa only [single_eq_pi_single] using Pi.apply_single _ (fun _ => hf) a _ a'
state_before: α : Type u_3
β : Type ?u.180467
γ : Type ?u.180470
ι : Type ?u.180473
M : Type u_2
M' : Type ?u.180479
N : Type u_1
P : Type ?u.180485
G : Type ?u.180488
H : Type ?u.180491
R : Type ?u.180494
S : Type ?u.180497
inst✝² : Zero M
inst✝¹ : Zero N
inst✝ : Zero P
f : M → N
hf : f 0 = 0
a : α
b : M
a' : α
⊢ ↑(mapRange f hf (single a b)) a' = ↑(single a (f b)) a'
Theorem: DoubleQuot.quotQuotEquivQuotOfLE_comp_quotQuotMk
File: Mathlib/RingTheory/Ideal/QuotientOperations.lean

tactic: ext
state_before: R : Type u
inst✝ : CommRing R
I J : Ideal R
h : I ≤ J
⊢ RingHom.comp (↑(quotQuotEquivQuotOfLE h)) (quotQuotMk I J) = Ideal.Quotient.mk J

tactic: rfl
state_before: case a
R : Type u
inst✝ : CommRing R
I J : Ideal R
h : I ≤ J
x✝ : R
⊢ ↑(RingHom.comp (↑(quotQuotEquivQuotOfLE h)) (quotQuotMk I J)) x✝ = ↑(Ideal.Quotient.mk J) x✝
Theorem: LiouvilleWith.mul_int_iff
File: Mathlib/NumberTheory/Liouville/LiouvilleWith.lean

tactic: rw [← Rat.cast_coe_int, mul_rat_iff (Int.cast_ne_zero.2 hm)]
state_before: p q x y : ℝ
r : ℚ
m : ℤ
n : ℕ
hm : m ≠ 0
⊢ LiouvilleWith p (x * ↑m) ↔ LiouvilleWith p x
Theorem: SemiconjBy.units_zpow_right
File: Mathlib/Algebra/GroupPower/Lemmas.lean

tactic: simp only [zpow_ofNat, Units.val_pow_eq_pow_val, h, pow_right]
state_before: α : Type ?u.391210
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✝¹ : Group G
inst✝ : Ring R
a : M
x y : Mˣ
h : SemiconjBy a ↑x ↑y
n : ℕ
⊢ SemiconjBy a ↑(x ^ ↑n) ↑(y ^ ↑n)

tactic: simp only [zpow_negSucc, Units.val_pow_eq_pow_val, units_inv_right, h, pow_right]
state_before: α : Type ?u.391210
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✝¹ : Group G
inst✝ : Ring R
a : M
x y : Mˣ
h : SemiconjBy a ↑x ↑y
n : ℕ
⊢ SemiconjBy a ↑(x ^ -[n+1]) ↑(y ^ -[n+1])
Theorem: EuclideanGeometry.dist_sq_smul_orthogonal_vadd_smul_orthogonal_vadd
File: Mathlib/Geometry/Euclidean/Basic.lean

tactic: rw [dist_eq_norm_vsub V (r1 • v +ᵥ p1), vsub_vadd_eq_vsub_sub, vadd_vsub_assoc, sub_smul,
  add_comm, add_sub_assoc]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
p1 p2 : P
hp1 : p1 ∈ s
hp2 : p2 ∈ s
r1 r2 : ℝ
v : V
hv : v ∈ (direction s)ᗮ
⊢ dist (r1 • v +ᵥ p1) (r2 • v +ᵥ p2) * dist (r1 • v +ᵥ p1) (r2 • v +ᵥ p2) =
    ‖p1 -ᵥ p2 + (r1 - r2) • v‖ * ‖p1 -ᵥ p2 + (r1 - r2) • v‖

tactic: rw [norm_smul, Real.norm_eq_abs]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
p1 p2 : P
hp1 : p1 ∈ s
hp2 : p2 ∈ s
r1 r2 : ℝ
v : V
hv : v ∈ (direction s)ᗮ
⊢ ‖p1 -ᵥ p2‖ * ‖p1 -ᵥ p2‖ + ‖(r1 - r2) • v‖ * ‖(r1 - r2) • v‖ =
    ‖p1 -ᵥ p2‖ * ‖p1 -ᵥ p2‖ + abs (r1 - r2) * abs (r1 - r2) * ‖v‖ * ‖v‖

tactic: ring
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
p1 p2 : P
hp1 : p1 ∈ s
hp2 : p2 ∈ s
r1 r2 : ℝ
v : V
hv : v ∈ (direction s)ᗮ
⊢ ‖p1 -ᵥ p2‖ * ‖p1 -ᵥ p2‖ + abs (r1 - r2) * ‖v‖ * (abs (r1 - r2) * ‖v‖) =
    ‖p1 -ᵥ p2‖ * ‖p1 -ᵥ p2‖ + abs (r1 - r2) * abs (r1 - r2) * ‖v‖ * ‖v‖

tactic: rw [dist_eq_norm_vsub V p1, abs_mul_abs_self, mul_assoc]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
s : AffineSubspace ℝ P
p1 p2 : P
hp1 : p1 ∈ s
hp2 : p2 ∈ s
r1 r2 : ℝ
v : V
hv : v ∈ (direction s)ᗮ
⊢ ‖p1 -ᵥ p2‖ * ‖p1 -ᵥ p2‖ + abs (r1 - r2) * abs (r1 - r2) * ‖v‖ * ‖v‖ =
    dist p1 p2 * dist p1 p2 + (r1 - r2) * (r1 - r2) * (‖v‖ * ‖v‖)
Theorem: Complex.eq_coe_norm_of_nonneg
File: Mathlib/Analysis/Complex/Basic.lean

tactic: lift z to ℝ using hz.2.symm
state_before: E : Type ?u.1183703
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
z : ℂ
hz : 0 ≤ z
⊢ z = ↑‖z‖

tactic: rw [norm_eq_abs, abs_ofReal, _root_.abs_of_nonneg (id hz.1 : 0 ≤ z)]
state_before: case intro
E : Type ?u.1183703
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedSpace ℂ E
z : ℝ
hz : 0 ≤ ↑z
⊢ ↑z = ↑‖↑z‖
Theorem: Fin.rev_eq
File: Mathlib/Data/Fin/Basic.lean

tactic: ext
state_before: n✝ m n a : ℕ
i : Fin (n + 1)
h : n = a + ↑i
⊢ ↑rev i = { val := a, isLt := (_ : a < Nat.succ n) }

tactic: dsimp
state_before: case h
n✝ m n a : ℕ
i : Fin (n + 1)
h : n = a + ↑i
⊢ ↑(↑rev i) = ↑{ val := a, isLt := (_ : a < Nat.succ n) }

tactic: conv_lhs =>
  congr
  rw [h]
state_before: case h
n✝ m n a : ℕ
i : Fin (n + 1)
h : n = a + ↑i
⊢ n + 1 - (↑i + 1) = a

tactic: rw [add_assoc, add_tsub_cancel_right]
state_before: case h
n✝ m n a : ℕ
i : Fin (n + 1)
h : n = a + ↑i
⊢ a + ↑i + 1 - (↑i + 1) = a
Theorem: Matrix.one_zpow
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: rw [zpow_ofNat, one_pow]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
n : ℕ
⊢ 1 ^ ↑n = 1

tactic: rw [zpow_negSucc, one_pow, inv_one]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
n : ℕ
⊢ 1 ^ -[n+1] = 1
Theorem: bot_covby_iff
File: Mathlib/Order/Atoms.lean

tactic: simp only [Covby, bot_lt_iff_ne_bot, IsAtom, not_imp_not]
state_before: α : Type u_1
β : Type ?u.2959
inst✝¹ : PartialOrder α
inst✝ : OrderBot α
a b x : α
⊢ ⊥ ⋖ a ↔ IsAtom a
Theorem: OmegaCompletePartialOrder.ωSup_le_iff
File: Mathlib/Order/OmegaCompletePartialOrder.lean

tactic: constructor <;> intros
state_before: α : Type u
β : Type v
γ : Type ?u.8324
inst✝ : OmegaCompletePartialOrder α
c : Chain α
x : α
⊢ ωSup c ≤ x ↔ ∀ (i : ℕ), ↑c i ≤ x

tactic: exact ωSup_le _ _ ‹_›
state_before: case mpr
α : Type u
β : Type v
γ : Type ?u.8324
inst✝ : OmegaCompletePartialOrder α
c : Chain α
x : α
a✝ : ∀ (i : ℕ), ↑c i ≤ x
⊢ ωSup c ≤ x

tactic: trans ωSup c
state_before: case mp
α : Type u
β : Type v
γ : Type ?u.8324
inst✝ : OmegaCompletePartialOrder α
c : Chain α
x : α
a✝ : ωSup c ≤ x
i✝ : ℕ
⊢ ↑c i✝ ≤ x

tactic: exact le_ωSup _ _
state_before: α : Type u
β : Type v
γ : Type ?u.8324
inst✝ : OmegaCompletePartialOrder α
c : Chain α
x : α
a✝ : ωSup c ≤ x
i✝ : ℕ
⊢ ↑c i✝ ≤ ωSup c

α : Type u
β : Type v
γ : Type ?u.8324
inst✝ : OmegaCompletePartialOrder α
c : Chain α
x : α
a✝ : ωSup c ≤ x
i✝ : ℕ
⊢ ωSup c ≤ x

tactic: assumption
state_before: α : Type u
β : Type v
γ : Type ?u.8324
inst✝ : OmegaCompletePartialOrder α
c : Chain α
x : α
a✝ : ωSup c ≤ x
i✝ : ℕ
⊢ ωSup c ≤ x
Theorem: edist_congr_left
File: Mathlib/Topology/MetricSpace/EMetricSpace.lean

tactic: rw [edist_comm z x, edist_comm z y]
state_before: α : Type u
β : Type v
X : Type ?u.6274
inst✝ : PseudoEMetricSpace α
x y z : α
h : edist x y = 0
⊢ edist z x = edist z y

tactic: apply edist_congr_right h
state_before: α : Type u
β : Type v
X : Type ?u.6274
inst✝ : PseudoEMetricSpace α
x y z : α
h : edist x y = 0
⊢ edist x z = edist y z
Theorem: CategoryTheory.Iso.commRingIsoToRingEquiv_toRingHom
File: Mathlib/Algebra/Category/Ring/Basic.lean

tactic: ext
state_before: X Y : CommRingCat
i : X ≅ Y
⊢ RingEquiv.toRingHom (commRingCatIsoToRingEquiv i) = i.hom

tactic: rfl
state_before: case a
X Y : CommRingCat
i : X ≅ Y
x✝ : ↑X
⊢ ↑(RingEquiv.toRingHom (commRingCatIsoToRingEquiv i)) x✝ = ↑i.hom x✝
Theorem: Set.finite_iUnion
File: Mathlib/Data/Set/Finite.lean

tactic: haveI := fun i => (H i).fintype
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : Finite ι
f : ι → Set α
H : ∀ (i : ι), Set.Finite (f i)
⊢ Set.Finite (⋃ (i : ι), f i)

tactic: apply toFinite
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝ : Finite ι
f : ι → Set α
H : ∀ (i : ι), Set.Finite (f i)
this : (i : ι) → Fintype ↑(f i)
⊢ Set.Finite (⋃ (i : ι), f i)
Theorem: Function.Involutive.iterate_eq_self
File: Mathlib/Data/Nat/Parity.lean

tactic: rwa [hf.iterate_even hn, eq_comm] at H
state_before: α : Type u_1
f : α → α
n : ℕ
hf : Involutive f
hne : f ≠ id
H : f^[n] = f
hn : Even n
⊢ f = id
Theorem: NonUnitalSubsemiring.top_prod
File: Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean

tactic: simp [mem_prod, MonoidHom.coe_snd]
state_before: R : Type u
S : Type v
T : Type w
inst✝³ : NonUnitalNonAssocSemiring R
M : Subsemigroup R
inst✝² : NonUnitalNonAssocSemiring S
inst✝¹ : NonUnitalNonAssocSemiring T
F : Type ?u.268477
inst✝ : NonUnitalRingHomClass F R S
s : NonUnitalSubsemiring S
x : R × S
⊢ x ∈ prod ⊤ s ↔ x ∈ comap (NonUnitalRingHom.snd R S) s