1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: MeasureTheory.Measure.WeaklyRegular.restrict_of_measure_ne_top
File: Mathlib/MeasureTheory/Measure/Regular.lean

tactic: haveI : Fact (μ A < ∞) := ⟨h'A.lt_top⟩
state_before: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
inst✝¹ : BorelSpace α
inst✝ : μ.WeaklyRegular
A : Set α
h'A : μ A ≠ ⊤
⊢ (μ.restrict A).WeaklyRegular
state_after: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
inst✝¹ : BorelSpace α
inst✝ : μ.WeaklyRegular
A : Set α
h'A : μ A ≠ ⊤
this : Fact (μ A < ⊤)
⊢ (μ.restrict A).WeaklyRegular

tactic: refine InnerRegularWRT.weaklyRegular_of_finite (μ.restrict A) (fun V V_open r hr ↦ ?_)
state_before: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
inst✝¹ : BorelSpace α
inst✝ : μ.WeaklyRegular
A : Set α
h'A : μ A ≠ ⊤
this : Fact (μ A < ⊤)
⊢ (μ.restrict A).WeaklyRegular
state_after: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
inst✝¹ : BorelSpace α
inst✝ : μ.WeaklyRegular
A : Set α
h'A : μ A ≠ ⊤
this : Fact (μ A < ⊤)
V : Set α
V_open : IsOpen V
r : ℝ≥0∞
hr : r < (μ.restrict A) V
⊢ ∃ K ⊆ V, IsClosed K ∧ r < (μ.restrict A) K

tactic: have : InnerRegularWRT (μ.restrict A) IsClosed (fun s ↦ MeasurableSet s) :=
  InnerRegularWRT.restrict_of_measure_ne_top innerRegular_measurable h'A
state_before: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
inst✝¹ : BorelSpace α
inst✝ : μ.WeaklyRegular
A : Set α
h'A : μ A ≠ ⊤
this : Fact (μ A < ⊤)
V : Set α
V_open : IsOpen V
r : ℝ≥0∞
hr : r < (μ.restrict A) V
⊢ ∃ K ⊆ V, IsClosed K ∧ r < (μ.restrict A) K
state_after: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
inst✝¹ : BorelSpace α
inst✝ : μ.WeaklyRegular
A : Set α
h'A : μ A ≠ ⊤
this✝ : Fact (μ A < ⊤)
V : Set α
V_open : IsOpen V
r : ℝ≥0∞
hr : r < (μ.restrict A) V
this : (μ.restrict A).InnerRegularWRT IsClosed fun s => MeasurableSet s
⊢ ∃ K ⊆ V, IsClosed K ∧ r < (μ.restrict A) K

tactic: exact this V_open.measurableSet r hr
state_before: α : Type u_1
β : Type u_2
inst✝³ : MeasurableSpace α
inst✝² : TopologicalSpace α
μ : Measure α
inst✝¹ : BorelSpace α
inst✝ : μ.WeaklyRegular
A : Set α
h'A : μ A ≠ ⊤
this✝ : Fact (μ A < ⊤)
V : Set α
V_open : IsOpen V
r : ℝ≥0∞
hr : r < (μ.restrict A) V
this : (μ.restrict A).InnerRegularWRT IsClosed fun s => MeasurableSet s
⊢ ∃ K ⊆ V, IsClosed K ∧ r < (μ.restrict A) K
state_after: no goals
Theorem: groupCohomology.dOne_comp_dZero
File: Mathlib/RepresentationTheory/GroupCohomology/LowDegree.lean

tactic: ext x g
state_before: k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
⊢ dOne A ∘ₗ dZero A = 0
state_after: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : CoeSort.coe A
g : G × G
⊢ (dOne A ∘ₗ dZero A) x g = 0 x g

tactic: simp only [LinearMap.coe_comp, Function.comp_apply, dOne_apply A, dZero_apply A, map_sub,
  map_mul, LinearMap.mul_apply, sub_sub_sub_cancel_left, sub_add_sub_cancel, sub_self]
state_before: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : CoeSort.coe A
g : G × G
⊢ (dOne A ∘ₗ dZero A) x g = 0 x g
state_after: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : CoeSort.coe A
g : G × G
⊢ 0 = 0 x g

tactic: rfl
state_before: case h.h
k G : Type u
inst✝¹ : CommRing k
inst✝ : Group G
A : Rep k G
x : CoeSort.coe A
g : G × G
⊢ 0 = 0 x g
state_after: no goals
Theorem: Finsupp.tail_cons
File: Mathlib/Data/Finsupp/Fin.lean

tactic: simp only [tail_apply, cons_succ]
state_before: n : ℕ
i : Fin n
M : Type u_1
inst✝ : Zero M
y : M
t : Fin (n + 1) →₀ M
s : Fin n →₀ M
k : Fin n
⊢ (cons y s).tail k = s k
state_after: no goals
Theorem: Submodule.span_smul_le
File: Mathlib/LinearAlgebra/Span.lean

tactic: rw [span_le]
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s✝ t s : Set M
r : R
⊢ span R (r • s) ≤ span R s
state_after: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s✝ t s : Set M
r : R
⊢ r • s ⊆ ↑(span R s)

tactic: rintro _ ⟨x, hx, rfl⟩
state_before: R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s✝ t s : Set M
r : R
⊢ r • s ⊆ ↑(span R s)
state_after: case intro.intro
R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s✝ t s : Set M
r : R
x : M
hx : x ∈ s
⊢ (fun x => r • x) x ∈ ↑(span R s)

tactic: exact smul_mem (span R s) r (subset_span hx)
state_before: case intro.intro
R : Type u_1
R₂ : Type u_2
K : Type u_3
M : Type u_4
M₂ : Type u_5
V : Type u_6
S : Type u_7
inst✝⁷ : Semiring R
inst✝⁶ : AddCommMonoid M
inst✝⁵ : Module R M
x✝ : M
p p' : Submodule R M
inst✝⁴ : Semiring R₂
σ₁₂ : R →+* R₂
inst✝³ : AddCommMonoid M₂
inst✝² : Module R₂ M₂
F : Type u_8
inst✝¹ : FunLike F M M₂
inst✝ : SemilinearMapClass F σ₁₂ M M₂
s✝ t s : Set M
r : R
x : M
hx : x ∈ s
⊢ (fun x => r • x) x ∈ ↑(span R s)
state_after: no goals
Theorem: Finset.image₂_inter_singleton
File: Mathlib/Data/Finset/NAry.lean

tactic: simp_rw [image₂_singleton_right, image_inter _ _ hf]
state_before: α : Type u_1
α' : Type u_2
β : Type u_3
β' : Type u_4
γ : Type u_5
γ' : Type u_6
δ : Type u_7
δ' : Type u_8
ε : Type u_9
ε' : Type u_10
ζ : Type u_11
ζ' : Type u_12
ν : Type u_13
inst✝⁸ : DecidableEq α'
inst✝⁷ : DecidableEq β'
inst✝⁶ : DecidableEq γ
inst✝⁵ : DecidableEq γ'
inst✝⁴ : DecidableEq δ
inst✝³ : DecidableEq δ'
inst✝² : DecidableEq ε
inst✝¹ : DecidableEq ε'
f f' : α → β → γ
g g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
inst✝ : DecidableEq α
s₁ s₂ : Finset α
hf : Injective fun a => f a b
⊢ image₂ f (s₁ ∩ s₂) {b} = image₂ f s₁ {b} ∩ image₂ f s₂ {b}
state_after: no goals
Theorem: RelSeries.subsingleton_of_length_eq_zero
File: Mathlib/Order/RelSeries.lean

tactic: rintro - ⟨i, rfl⟩ - ⟨j, rfl⟩
state_before: α : Type u_1
r : Rel α α
β : Type u_2
s✝ : Rel β β
s : RelSeries r
x : α
hs : s.length = 0
⊢ {x | x ∈ s}.Subsingleton
state_after: case intro.intro
α : Type u_1
r : Rel α α
β : Type u_2
s✝ : Rel β β
s : RelSeries r
x : α
hs : s.length = 0
i j : Fin (s.length + 1)
⊢ s.toFun i = s.toFun j

tactic: congr!
state_before: case intro.intro
α : Type u_1
r : Rel α α
β : Type u_2
s✝ : Rel β β
s : RelSeries r
x : α
hs : s.length = 0
i j : Fin (s.length + 1)
⊢ s.toFun i = s.toFun j
state_after: case intro.intro.h.e'_4
α : Type u_1
r : Rel α α
β : Type u_2
s✝ : Rel β β
s : RelSeries r
x : α
hs : s.length = 0
i j : Fin (s.length + 1)
⊢ i = j

tactic: exact finCongr (by rw [hs, zero_add]) |>.injective <| Subsingleton.elim (α := Fin 1) _ _
state_before: case intro.intro.h.e'_4
α : Type u_1
r : Rel α α
β : Type u_2
s✝ : Rel β β
s : RelSeries r
x : α
hs : s.length = 0
i j : Fin (s.length + 1)
⊢ i = j
state_after: no goals

tactic: rw [hs, zero_add]
state_before: α : Type u_1
r : Rel α α
β : Type u_2
s✝ : Rel β β
s : RelSeries r
x : α
hs : s.length = 0
i j : Fin (s.length + 1)
⊢ s.length + 1 = 1
state_after: no goals
Theorem: Set.Ico_add_bij
File: Mathlib/Algebra/Order/Interval/Set/Monoid.lean

tactic: rw [← Ici_inter_Iio, ← Ici_inter_Iio]
state_before: M : Type u_1
inst✝¹ : OrderedCancelAddCommMonoid M
inst✝ : ExistsAddOfLE M
a b c d : M
⊢ BijOn (fun x => x + d) (Ico a b) (Ico (a + d) (b + d))
state_after: M : Type u_1
inst✝¹ : OrderedCancelAddCommMonoid M
inst✝ : ExistsAddOfLE M
a b c d : M
⊢ BijOn (fun x => x + d) (Ici a ∩ Iio b) (Ici (a + d) ∩ Iio (b + d))

tactic: exact
  (Ici_add_bij a d).inter_mapsTo (fun x hx => add_lt_add_right hx _) fun x hx =>
    lt_of_add_lt_add_right hx.2
state_before: M : Type u_1
inst✝¹ : OrderedCancelAddCommMonoid M
inst✝ : ExistsAddOfLE M
a b c d : M
⊢ BijOn (fun x => x + d) (Ici a ∩ Iio b) (Ici (a + d) ∩ Iio (b + d))
state_after: no goals
Theorem: ZMod.sum_Ico_eq_card_lt
File: Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean

tactic: simp [hp0, Finset.ext_iff]
state_before: p q : ℕ
hp0 : p = 0
⊢ ∑ a ∈ Ico 1 (p / 2).succ, a * q / p =
    (filter (fun x => x.2 * p ≤ x.1 * q) (Ico 1 (p / 2).succ ×ˢ Ico 1 (q / 2).succ)).card
state_after: no goals

tactic: have := le_of_lt_succ (mem_Ico.mp hx).2
state_before: p q : ℕ
hp0 : ¬p = 0
x : ℕ
hx : x ∈ Ico 1 (p / 2).succ
⊢ x * q / p ≤ p / 2 * q / p
state_after: p q : ℕ
hp0 : ¬p = 0
x : ℕ
hx : x ∈ Ico 1 (p / 2).succ
this : x ≤ p / 2
⊢ x * q / p ≤ p / 2 * q / p

tactic: gcongr
state_before: p q : ℕ
hp0 : ¬p = 0
x : ℕ
hx : x ∈ Ico 1 (p / 2).succ
this : x ≤ p / 2
⊢ x * q / p ≤ p / 2 * q / p
state_after: no goals

tactic: rw [← card_sigma]
state_before: p q : ℕ
hp0 : ¬p = 0
⊢ ∑ a ∈ Ico 1 (p / 2).succ, (filter (fun x => x * p ≤ a * q) (Ico 1 (q / 2).succ)).card =
    (filter (fun x => x.2 * p ≤ x.1 * q) (Ico 1 (p / 2).succ ×ˢ Ico 1 (q / 2).succ)).card
state_after: p q : ℕ
hp0 : ¬p = 0
⊢ ((Ico 1 (p / 2).succ).sigma fun a => filter (fun x => x * p ≤ a * q) (Ico 1 (q / 2).succ)).card =
    (filter (fun x => x.2 * p ≤ x.1 * q) (Ico 1 (p / 2).succ ×ˢ Ico 1 (q / 2).succ)).card

tactic: exact card_nbij' (fun a ↦ ⟨a.1, a.2⟩) (fun a ↦ ⟨a.1, a.2⟩)
  (by simp (config := { contextual := true }) only [mem_filter, mem_sigma, and_self_iff,
    forall_true_iff, mem_product])
  (by simp (config := { contextual := true }) only [mem_filter, mem_sigma, and_self_iff,
    forall_true_iff, mem_product]) (fun _ _ ↦ rfl) (fun _ _ ↦ rfl)
state_before: p q : ℕ
hp0 : ¬p = 0
⊢ ((Ico 1 (p / 2).succ).sigma fun a => filter (fun x => x * p ≤ a * q) (Ico 1 (q / 2).succ)).card =
    (filter (fun x => x.2 * p ≤ x.1 * q) (Ico 1 (p / 2).succ ×ˢ Ico 1 (q / 2).succ)).card
state_after: no goals

tactic: simp (config := { contextual := true }) only [mem_filter, mem_sigma, and_self_iff,
forall_true_iff, mem_product]
state_before: p q : ℕ
hp0 : ¬p = 0
⊢ ∀ a ∈ (Ico 1 (p / 2).succ).sigma fun a => filter (fun x => x * p ≤ a * q) (Ico 1 (q / 2).succ),
    (fun a => (a.fst, a.snd)) a ∈ filter (fun x => x.2 * p ≤ x.1 * q) (Ico 1 (p / 2).succ ×ˢ Ico 1 (q / 2).succ)
state_after: no goals

tactic: simp (config := { contextual := true }) only [mem_filter, mem_sigma, and_self_iff,
forall_true_iff, mem_product]
state_before: p q : ℕ
hp0 : ¬p = 0
⊢ ∀ a ∈ filter (fun x => x.2 * p ≤ x.1 * q) (Ico 1 (p / 2).succ ×ˢ Ico 1 (q / 2).succ),
    (fun a => ⟨a.1, a.2⟩) a ∈ (Ico 1 (p / 2).succ).sigma fun a => filter (fun x => x * p ≤ a * q) (Ico 1 (q / 2).succ)
state_after: no goals
Theorem: IsPrimitiveRoot.norm_toInteger_pow_sub_one_of_two
File: Mathlib/NumberTheory/Cyclotomic/Rat.lean

tactic: have : NumberField K := IsCyclotomicExtension.numberField {2 ^ (k + 1)} ℚ K
state_before: p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {2 ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(2 ^ (k + 1))
⊢ (Algebra.norm ℤ) (hζ.toInteger ^ 2 ^ k - 1) = (-2) ^ 2 ^ k
state_after: p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {2 ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(2 ^ (k + 1))
this : NumberField K
⊢ (Algebra.norm ℤ) (hζ.toInteger ^ 2 ^ k - 1) = (-2) ^ 2 ^ k

tactic: rw [Algebra.norm_eq_iff ℤ (Sₘ := K) (Rₘ := ℚ) rfl.le]
state_before: p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {2 ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(2 ^ (k + 1))
this : NumberField K
⊢ (Algebra.norm ℤ) (hζ.toInteger ^ 2 ^ k - 1) = (-2) ^ 2 ^ k
state_after: p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {2 ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(2 ^ (k + 1))
this : NumberField K
⊢ (Algebra.norm ℚ) ((algebraMap (𝓞 K) K) (hζ.toInteger ^ 2 ^ k - 1)) = (algebraMap ℤ ℚ) ((-2) ^ 2 ^ k)

tactic: simp [hζ.norm_pow_sub_one_two (cyclotomic.irreducible_rat (pow_pos (by decide) _))]
state_before: p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {2 ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(2 ^ (k + 1))
this : NumberField K
⊢ (Algebra.norm ℚ) ((algebraMap (𝓞 K) K) (hζ.toInteger ^ 2 ^ k - 1)) = (algebraMap ℤ ℚ) ((-2) ^ 2 ^ k)
state_after: no goals

tactic: decide
state_before: p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {2 ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(2 ^ (k + 1))
this : NumberField K
⊢ 0 < 2
state_after: no goals
Theorem: CompleteLattice.Independent.injective
File: Mathlib/Order/SupIndep.lean

tactic: suffices univ = {i | t i ≠ ⊥} by rw [injective_iff_injOn_univ, this]; exact ht.injOn
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ ht : Independent t
h_ne_bot : ∀ (i : ι), t i ≠ ⊥
⊢ Injective t
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ ht : Independent t
h_ne_bot : ∀ (i : ι), t i ≠ ⊥
⊢ univ = {i | t i ≠ ⊥}

tactic: aesop
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ ht : Independent t
h_ne_bot : ∀ (i : ι), t i ≠ ⊥
⊢ univ = {i | t i ≠ ⊥}
state_after: no goals

tactic: rw [injective_iff_injOn_univ, this]
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ ht : Independent t
h_ne_bot : ∀ (i : ι), t i ≠ ⊥
this : univ = {i | t i ≠ ⊥}
⊢ Injective t
state_after: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ ht : Independent t
h_ne_bot : ∀ (i : ι), t i ≠ ⊥
this : univ = {i | t i ≠ ⊥}
⊢ InjOn t {i | t i ≠ ⊥}

tactic: exact ht.injOn
state_before: α : Type u_1
β : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝ : CompleteLattice α
s : Set α
hs : SetIndependent s
t : ι → α
ht✝ ht : Independent t
h_ne_bot : ∀ (i : ι), t i ≠ ⊥
this : univ = {i | t i ≠ ⊥}
⊢ InjOn t {i | t i ≠ ⊥}
state_after: no goals
Theorem: CategoryTheory.MorphismProperty.LeftFraction.Localization.homMk_eq
File: Mathlib/CategoryTheory/Localization/CalculusOfFractions.lean

tactic: have := Localization.inverts (Q W) W f.s f.hs
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.95995, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
f : W.LeftFraction X Y
⊢ homMk f = f.map (Q W) ⋯
state_after: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.95995, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
f : W.LeftFraction X Y
this : IsIso ((Q W).map f.s)
⊢ homMk f = f.map (Q W) ⋯

tactic: rw [← Q_map_comp_Qinv f.f f.s f.hs, ← cancel_mono ((Q W).map f.s),
  assoc, Qiso_inv_hom_id, comp_id, map_comp_map_s]
state_before: C : Type u_1
D : Type u_2
inst✝² : Category.{u_3, u_1} C
inst✝¹ : Category.{?u.95995, u_2} D
W : MorphismProperty C
inst✝ : W.HasLeftCalculusOfFractions
X Y : C
f : W.LeftFraction X Y
this : IsIso ((Q W).map f.s)
⊢ homMk f = f.map (Q W) ⋯
state_after: no goals
Theorem: DenomsClearable.add
File: Mathlib/Algebra/Polynomial/DenomsClearable.lean

tactic: rw [RingHom.map_add, Polynomial.map_add, eval_add, mul_add, Hf, Hg]
state_before: R : Type u_1
K : Type u_2
inst✝¹ : Semiring R
inst✝ : CommSemiring K
i : R →+* K
a b : R
bi : K
N : ℕ
f g : R[X]
x✝¹ : DenomsClearable a b N f i
x✝ : DenomsClearable a b N g i
Df : R
bf : K
bfu : bf * i b = 1
Hf : i Df = i b ^ N * eval (i a * bf) (Polynomial.map i f)
Dg : R
bg : K
bgu : bg * i b = 1
Hg : i Dg = i b ^ N * eval (i a * bg) (Polynomial.map i g)
⊢ i (Df + Dg) = i b ^ N * eval (i a * bf) (Polynomial.map i (f + g))
state_after: R : Type u_1
K : Type u_2
inst✝¹ : Semiring R
inst✝ : CommSemiring K
i : R →+* K
a b : R
bi : K
N : ℕ
f g : R[X]
x✝¹ : DenomsClearable a b N f i
x✝ : DenomsClearable a b N g i
Df : R
bf : K
bfu : bf * i b = 1
Hf : i Df = i b ^ N * eval (i a * bf) (Polynomial.map i f)
Dg : R
bg : K
bgu : bg * i b = 1
Hg : i Dg = i b ^ N * eval (i a * bg) (Polynomial.map i g)
⊢ i b ^ N * eval (i a * bf) (Polynomial.map i f) + i b ^ N * eval (i a * bg) (Polynomial.map i g) =
    i b ^ N * eval (i a * bf) (Polynomial.map i f) + i b ^ N * eval (i a * bf) (Polynomial.map i g)

tactic: congr
state_before: R : Type u_1
K : Type u_2
inst✝¹ : Semiring R
inst✝ : CommSemiring K
i : R →+* K
a b : R
bi : K
N : ℕ
f g : R[X]
x✝¹ : DenomsClearable a b N f i
x✝ : DenomsClearable a b N g i
Df : R
bf : K
bfu : bf * i b = 1
Hf : i Df = i b ^ N * eval (i a * bf) (Polynomial.map i f)
Dg : R
bg : K
bgu : bg * i b = 1
Hg : i Dg = i b ^ N * eval (i a * bg) (Polynomial.map i g)
⊢ i b ^ N * eval (i a * bf) (Polynomial.map i f) + i b ^ N * eval (i a * bg) (Polynomial.map i g) =
    i b ^ N * eval (i a * bf) (Polynomial.map i f) + i b ^ N * eval (i a * bf) (Polynomial.map i g)
state_after: case e_a.e_a.e_a.e_a
R : Type u_1
K : Type u_2
inst✝¹ : Semiring R
inst✝ : CommSemiring K
i : R →+* K
a b : R
bi : K
N : ℕ
f g : R[X]
x✝¹ : DenomsClearable a b N f i
x✝ : DenomsClearable a b N g i
Df : R
bf : K
bfu : bf * i b = 1
Hf : i Df = i b ^ N * eval (i a * bf) (Polynomial.map i f)
Dg : R
bg : K
bgu : bg * i b = 1
Hg : i Dg = i b ^ N * eval (i a * bg) (Polynomial.map i g)
⊢ bg = bf

tactic: refine @inv_unique K _ (i b) bg bf ?_ ?_ <;> rwa [mul_comm]
state_before: case e_a.e_a.e_a.e_a
R : Type u_1
K : Type u_2
inst✝¹ : Semiring R
inst✝ : CommSemiring K
i : R →+* K
a b : R
bi : K
N : ℕ
f g : R[X]
x✝¹ : DenomsClearable a b N f i
x✝ : DenomsClearable a b N g i
Df : R
bf : K
bfu : bf * i b = 1
Hf : i Df = i b ^ N * eval (i a * bf) (Polynomial.map i f)
Dg : R
bg : K
bgu : bg * i b = 1
Hg : i Dg = i b ^ N * eval (i a * bg) (Polynomial.map i g)
⊢ bg = bf
state_after: no goals
Theorem: zero_le_three
File: Mathlib/Algebra/Order/Monoid/NatCast.lean

tactic: rw [← two_add_one_eq_three]
state_before: α : Type u_1
inst✝³ : AddMonoidWithOne α
inst✝² : Preorder α
inst✝¹ : ZeroLEOneClass α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ 0 ≤ 3
state_after: α : Type u_1
inst✝³ : AddMonoidWithOne α
inst✝² : Preorder α
inst✝¹ : ZeroLEOneClass α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ 0 ≤ 2 + 1

tactic: exact add_nonneg zero_le_two zero_le_one
state_before: α : Type u_1
inst✝³ : AddMonoidWithOne α
inst✝² : Preorder α
inst✝¹ : ZeroLEOneClass α
inst✝ : CovariantClass α α (fun x x_1 => x + x_1) fun x x_1 => x ≤ x_1
⊢ 0 ≤ 2 + 1
state_after: no goals
Theorem: Mathlib.Tactic.Ring.neg_add
File: Mathlib/Tactic/Ring/Basic.lean

tactic: subst_vars
state_before: u : Lean.Level
R✝ : Type ?u.119217
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : Ring R
a₁ a₂ b₁ b₂ : R
x✝¹ : -a₁ = b₁
x✝ : -a₂ = b₂
⊢ -(a₁ + a₂) = b₁ + b₂
state_after: u : Lean.Level
R✝ : Type ?u.119217
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : Ring R
a₁ a₂ : R
⊢ -(a₁ + a₂) = -a₁ + -a₂

tactic: simp [add_comm]
state_before: u : Lean.Level
R✝ : Type ?u.119217
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝¹ : CommSemiring R✝
R : Type u_1
inst✝ : Ring R
a₁ a₂ : R
⊢ -(a₁ + a₂) = -a₁ + -a₂
state_after: no goals
Theorem: Ordinal.mul_omega_dvd
File: Mathlib/SetTheory/Ordinal/Principal.lean

tactic: rw [← mul_assoc, mul_omega a0 ha]
state_before: a : Ordinal.{u_1}
a0 : 0 < a
ha : a < ω
b : Ordinal.{u_1}
⊢ a * (ω * b) = ω * b
state_after: no goals
Theorem: Filter.tendsto_div_const_atTop_iff
File: Mathlib/Order/Filter/AtTopBot.lean

tactic: simp [div_eq_mul_inv, tendsto_mul_const_atTop_iff]
state_before: ι : Type u_1
ι' : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
inst✝¹ : LinearOrderedField α
l : Filter β
f : β → α
r : α
inst✝ : l.NeBot
⊢ Tendsto (fun x => f x / r) l atTop ↔ 0 < r ∧ Tendsto f l atTop ∨ r < 0 ∧ Tendsto f l atBot
state_after: no goals
Theorem: LinearMap.IsRefl.ker_eq_bot_iff_ker_flip_eq_bot
File: Mathlib/LinearAlgebra/SesquilinearForm.lean

tactic: refine ⟨ker_flip_eq_bot H, fun h ↦ ?_⟩
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
Mₗ₁ : Type u_9
Mₗ₁' : Type u_10
Mₗ₂ : Type u_11
Mₗ₂' : Type u_12
K : Type u_13
K₁ : Type u_14
K₂ : Type u_15
V : Type u_16
V₁ : Type u_17
V₂ : Type u_18
n : Type u_19
inst✝⁵ : CommSemiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : CommSemiring R₁
inst✝¹ : AddCommMonoid M₁
inst✝ : Module R₁ M₁
I₁ I₂ : R₁ →+* R
B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M
H✝ H : B.IsRefl
⊢ ker B = ⊥ ↔ ker B.flip = ⊥
state_after: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
Mₗ₁ : Type u_9
Mₗ₁' : Type u_10
Mₗ₂ : Type u_11
Mₗ₂' : Type u_12
K : Type u_13
K₁ : Type u_14
K₂ : Type u_15
V : Type u_16
V₁ : Type u_17
V₂ : Type u_18
n : Type u_19
inst✝⁵ : CommSemiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : CommSemiring R₁
inst✝¹ : AddCommMonoid M₁
inst✝ : Module R₁ M₁
I₁ I₂ : R₁ →+* R
B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M
H✝ H : B.IsRefl
h : ker B.flip = ⊥
⊢ ker B = ⊥

tactic: exact (congr_arg _ B.flip_flip.symm).trans (ker_flip_eq_bot (flip_isRefl_iff.mpr H) h)
state_before: R : Type u_1
R₁ : Type u_2
R₂ : Type u_3
R₃ : Type u_4
M : Type u_5
M₁ : Type u_6
M₂ : Type u_7
M₃ : Type u_8
Mₗ₁ : Type u_9
Mₗ₁' : Type u_10
Mₗ₂ : Type u_11
Mₗ₂' : Type u_12
K : Type u_13
K₁ : Type u_14
K₂ : Type u_15
V : Type u_16
V₁ : Type u_17
V₂ : Type u_18
n : Type u_19
inst✝⁵ : CommSemiring R
inst✝⁴ : AddCommMonoid M
inst✝³ : Module R M
inst✝² : CommSemiring R₁
inst✝¹ : AddCommMonoid M₁
inst✝ : Module R₁ M₁
I₁ I₂ : R₁ →+* R
B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M
H✝ H : B.IsRefl
h : ker B.flip = ⊥
⊢ ker B = ⊥
state_after: no goals
Theorem: Set.Ioi_subset_Ioi_iff
File: Mathlib/Order/Interval/Set/Basic.lean

tactic: refine ⟨fun h => ?_, fun h => Ioi_subset_Ioi h⟩
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
⊢ Ioi b ⊆ Ioi a ↔ a ≤ b
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h : Ioi b ⊆ Ioi a
⊢ a ≤ b

tactic: by_contra ba
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h : Ioi b ⊆ Ioi a
⊢ a ≤ b
state_after: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h : Ioi b ⊆ Ioi a
ba : ¬a ≤ b
⊢ False

tactic: exact lt_irrefl _ (h (not_le.mp ba))
state_before: α : Type u_1
β : Type u_2
inst✝ : LinearOrder α
a a₁ a₂ b b₁ b₂ c d : α
h : Ioi b ⊆ Ioi a
ba : ¬a ≤ b
⊢ False
state_after: no goals
Theorem: Topology.WithUpperSet.toUpperSet_specializes_toUpperSet
File: Mathlib/Topology/Order/UpperLowerSetTopology.lean

tactic: simp_rw [specializes_iff_closure_subset, IsUpperSet.closure_singleton, Iic_subset_Iic,
  toUpperSet_le_iff]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
a b : α
⊢ toUpperSet a ⤳ toUpperSet b ↔ b ≤ a
state_after: no goals
Theorem: Vector3.append_add
File: Mathlib/Data/Vector3.lean

tactic: simp [append_add, add]
state_before: α : Type u_1
m✝ n✝ m : ℕ
v : Vector3 α (m + 1)
n : ℕ
w : Vector3 α n
i : Fin2 n
_a : α
t : Vector3 α m
⊢ ((_a :: t) +-+ w) (i.add (m + 1)) = w i
state_after: no goals