1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: LinearPMap.inverse_domain
File: Mathlib/LinearAlgebra/LinearPMap.lean

tactic: rw [inverse, Submodule.toLinearPMap_domain, ← graph_map_snd_eq_range,
  ← LinearEquiv.fst_comp_prodComm, Submodule.map_comp]
state_before: R : Type u_1
inst✝⁶ : Ring R
E : Type u_2
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module R E
F : Type u_3
inst✝³ : AddCommGroup F
inst✝² : Module R F
G : Type u_4
inst✝¹ : AddCommGroup G
inst✝ : Module R G
f : E →ₗ.[R] F
⊢ f.inverse.domain = LinearMap.range f.toFun
state_after: R : Type u_1
inst✝⁶ : Ring R
E : Type u_2
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module R E
F : Type u_3
inst✝³ : AddCommGroup F
inst✝² : Module R F
G : Type u_4
inst✝¹ : AddCommGroup G
inst✝ : Module R G
f : E →ₗ.[R] F
⊢ Submodule.map (LinearMap.fst R F E) (Submodule.map (LinearEquiv.prodComm R E F) f.graph) =
    Submodule.map (LinearMap.fst R F E) (Submodule.map (↑(LinearEquiv.prodComm R E F)) f.graph)

tactic: rfl
state_before: R : Type u_1
inst✝⁶ : Ring R
E : Type u_2
inst✝⁵ : AddCommGroup E
inst✝⁴ : Module R E
F : Type u_3
inst✝³ : AddCommGroup F
inst✝² : Module R F
G : Type u_4
inst✝¹ : AddCommGroup G
inst✝ : Module R G
f : E →ₗ.[R] F
⊢ Submodule.map (LinearMap.fst R F E) (Submodule.map (LinearEquiv.prodComm R E F) f.graph) =
    Submodule.map (LinearMap.fst R F E) (Submodule.map (↑(LinearEquiv.prodComm R E F)) f.graph)
state_after: no goals
Theorem: Convex.mem_smul_of_zero_mem
File: Mathlib/Analysis/Convex/Basic.lean

tactic: rw [mem_smul_set_iff_inv_smul_mem₀ (zero_lt_one.trans_le ht).ne']
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁴ : LinearOrderedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s : Set E
h : Convex 𝕜 s
x : E
zero_mem : 0 ∈ s
hx : x ∈ s
t : 𝕜
ht : 1 ≤ t
⊢ x ∈ t • s
state_after: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁴ : LinearOrderedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s : Set E
h : Convex 𝕜 s
x : E
zero_mem : 0 ∈ s
hx : x ∈ s
t : 𝕜
ht : 1 ≤ t
⊢ t⁻¹ • x ∈ s

tactic: exact h.smul_mem_of_zero_mem zero_mem hx ⟨inv_nonneg.2 (zero_le_one.trans ht), inv_le_one ht⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
β : Type u_4
inst✝⁴ : LinearOrderedField 𝕜
inst✝³ : AddCommGroup E
inst✝² : AddCommGroup F
inst✝¹ : Module 𝕜 E
inst✝ : Module 𝕜 F
s : Set E
h : Convex 𝕜 s
x : E
zero_mem : 0 ∈ s
hx : x ∈ s
t : 𝕜
ht : 1 ≤ t
⊢ t⁻¹ • x ∈ s
state_after: no goals
Theorem: LucasLehmer.X.coe_natCast
File: Mathlib/NumberTheory/LucasLehmer.lean

tactic: ext <;> simp
state_before: q : ℕ+
n : ℕ
⊢ ↑↑n = ↑n
state_after: no goals
Theorem: FormalMultilinearSeries.compChangeOfVariables_length
File: Mathlib/Analysis/Analytic/Composition.lean

tactic: rcases i with ⟨k, blocks_fun⟩
state_before: 𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
m M N : ℕ
i : (n : ℕ) × (Fin n → ℕ)
hi : i ∈ compPartialSumSource m M N
⊢ (compChangeOfVariables m M N i hi).snd.length = i.fst
state_after: case mk
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
m M N k : ℕ
blocks_fun : Fin k → ℕ
hi : ⟨k, blocks_fun⟩ ∈ compPartialSumSource m M N
⊢ (compChangeOfVariables m M N ⟨k, blocks_fun⟩ hi).snd.length = ⟨k, blocks_fun⟩.fst

tactic: dsimp [compChangeOfVariables]
state_before: case mk
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
m M N k : ℕ
blocks_fun : Fin k → ℕ
hi : ⟨k, blocks_fun⟩ ∈ compPartialSumSource m M N
⊢ (compChangeOfVariables m M N ⟨k, blocks_fun⟩ hi).snd.length = ⟨k, blocks_fun⟩.fst
state_after: case mk
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
m M N k : ℕ
blocks_fun : Fin k → ℕ
hi : ⟨k, blocks_fun⟩ ∈ compPartialSumSource m M N
⊢ { blocks := ofFn fun a => blocks_fun a, blocks_pos := ⋯, blocks_sum := ⋯ }.length = k

tactic: simp only [Composition.length, map_ofFn, length_ofFn]
state_before: case mk
𝕜 : Type u_1
E : Type u_2
F : Type u_3
G : Type u_4
H : Type u_5
inst✝⁸ : NontriviallyNormedField 𝕜
inst✝⁷ : NormedAddCommGroup E
inst✝⁶ : NormedSpace 𝕜 E
inst✝⁵ : NormedAddCommGroup F
inst✝⁴ : NormedSpace 𝕜 F
inst✝³ : NormedAddCommGroup G
inst✝² : NormedSpace 𝕜 G
inst✝¹ : NormedAddCommGroup H
inst✝ : NormedSpace 𝕜 H
m M N k : ℕ
blocks_fun : Fin k → ℕ
hi : ⟨k, blocks_fun⟩ ∈ compPartialSumSource m M N
⊢ { blocks := ofFn fun a => blocks_fun a, blocks_pos := ⋯, blocks_sum := ⋯ }.length = k
state_after: no goals
Theorem: Nat.nth_count_eq_sInf
File: Mathlib/Data/Nat/Nth.lean

tactic: refine (nth_eq_sInf _ _).trans (congr_arg sInf ?_)
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
⊢ nth p (count p n) = sInf {i | p i ∧ n ≤ i}
state_after: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
⊢ {x | p x ∧ ∀ k < count p n, nth p k < x} = {i | p i ∧ n ≤ i}

tactic: refine Set.ext fun a => and_congr_right fun hpa => ?_
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n : ℕ
⊢ {x | p x ∧ ∀ k < count p n, nth p k < x} = {i | p i ∧ n ≤ i}
state_after: p : ℕ → Prop
inst✝ : DecidablePred p
n a : ℕ
hpa : p a
⊢ (∀ k < count p n, nth p k < a) ↔ n ≤ a

tactic: refine ⟨fun h => not_lt.1 fun ha => ?_, fun hn k hk => lt_of_lt_of_le (nth_lt_of_lt_count hk) hn⟩
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n a : ℕ
hpa : p a
⊢ (∀ k < count p n, nth p k < a) ↔ n ≤ a
state_after: p : ℕ → Prop
inst✝ : DecidablePred p
n a : ℕ
hpa : p a
h : ∀ k < count p n, nth p k < a
ha : a < n
⊢ False

tactic: have hn : nth p (count p a) < a := h _ (count_strict_mono hpa ha)
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n a : ℕ
hpa : p a
h : ∀ k < count p n, nth p k < a
ha : a < n
⊢ False
state_after: p : ℕ → Prop
inst✝ : DecidablePred p
n a : ℕ
hpa : p a
h : ∀ k < count p n, nth p k < a
ha : a < n
hn : nth p (count p a) < a
⊢ False

tactic: rwa [nth_count hpa, lt_self_iff_false] at hn
state_before: p : ℕ → Prop
inst✝ : DecidablePred p
n a : ℕ
hpa : p a
h : ∀ k < count p n, nth p k < a
ha : a < n
hn : nth p (count p a) < a
⊢ False
state_after: no goals
Theorem: Matroid.uniqueBaseOn_indep_iff
File: Mathlib/Data/Matroid/Constructions.lean

tactic: rw [uniqueBaseOn, restrict_indep_iff, freeOn_indep_iff, and_iff_left_iff_imp]
state_before: α : Type u_1
M : Matroid α
E B I X R J : Set α
hIE : I ⊆ E
⊢ (uniqueBaseOn I E).Indep J ↔ J ⊆ I
state_after: α : Type u_1
M : Matroid α
E B I X R J : Set α
hIE : I ⊆ E
⊢ J ⊆ I → J ⊆ E

tactic: exact fun h ↦ h.trans hIE
state_before: α : Type u_1
M : Matroid α
E B I X R J : Set α
hIE : I ⊆ E
⊢ J ⊆ I → J ⊆ E
state_after: no goals
Theorem: WeierstrassCurve.variableChange_b₆
File: Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean

tactic: simp only [b₂, b₄, b₆, variableChange_a₃, variableChange_a₆]
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
C : VariableChange R
⊢ (W.variableChange C).b₆ = ↑C.u⁻¹ ^ 6 * (W.b₆ + 2 * C.r * W.b₄ + C.r ^ 2 * W.b₂ + 4 * C.r ^ 3)
state_after: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
C : VariableChange R
⊢ (↑C.u⁻¹ ^ 3 * (W.a₃ + C.r * W.a₁ + 2 * C.t)) ^ 2 +
      4 * (↑C.u⁻¹ ^ 6 * (W.a₆ + C.r * W.a₄ + C.r ^ 2 * W.a₂ + C.r ^ 3 - C.t * W.a₃ - C.t ^ 2 - C.r * C.t * W.a₁)) =
    ↑C.u⁻¹ ^ 6 *
      (W.a₃ ^ 2 + 4 * W.a₆ + 2 * C.r * (2 * W.a₄ + W.a₁ * W.a₃) + C.r ^ 2 * (W.a₁ ^ 2 + 4 * W.a₂) + 4 * C.r ^ 3)

tactic: ring1
state_before: R : Type u
inst✝ : CommRing R
W : WeierstrassCurve R
C : VariableChange R
⊢ (↑C.u⁻¹ ^ 3 * (W.a₃ + C.r * W.a₁ + 2 * C.t)) ^ 2 +
      4 * (↑C.u⁻¹ ^ 6 * (W.a₆ + C.r * W.a₄ + C.r ^ 2 * W.a₂ + C.r ^ 3 - C.t * W.a₃ - C.t ^ 2 - C.r * C.t * W.a₁)) =
    ↑C.u⁻¹ ^ 6 *
      (W.a₃ ^ 2 + 4 * W.a₆ + 2 * C.r * (2 * W.a₄ + W.a₁ * W.a₃) + C.r ^ 2 * (W.a₁ ^ 2 + 4 * W.a₂) + 4 * C.r ^ 3)
state_after: no goals
Theorem: EMetric.empty_or_nonempty_of_hausdorffEdist_ne_top
File: Mathlib/Topology/MetricSpace/HausdorffDistance.lean

tactic: rcases s.eq_empty_or_nonempty with hs | hs
state_before: ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty
state_after: case inl
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s = ∅
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty

case inr
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s.Nonempty
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty

tactic: rcases t.eq_empty_or_nonempty with ht | ht
state_before: case inl
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s = ∅
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty
state_after: case inl.inl
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s = ∅
ht : t = ∅
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty

case inl.inr
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s = ∅
ht : t.Nonempty
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty

tactic: exact Or.inl ⟨hs, ht⟩
state_before: case inl.inl
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s = ∅
ht : t = ∅
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty
state_after: no goals

tactic: rw [hausdorffEdist_comm] at fin
state_before: case inl.inr
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s = ∅
ht : t.Nonempty
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty
state_after: case inl.inr
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist t s ≠ ⊤
hs : s = ∅
ht : t.Nonempty
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty

tactic: exact Or.inr ⟨nonempty_of_hausdorffEdist_ne_top ht fin, ht⟩
state_before: case inl.inr
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist t s ≠ ⊤
hs : s = ∅
ht : t.Nonempty
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty
state_after: no goals

tactic: exact Or.inr ⟨hs, nonempty_of_hausdorffEdist_ne_top hs fin⟩
state_before: case inr
ι : Sort u_1
α : Type u
β : Type v
inst✝¹ : PseudoEMetricSpace α
inst✝ : PseudoEMetricSpace β
x y : α
s t u : Set α
Φ : α → β
fin : hausdorffEdist s t ≠ ⊤
hs : s.Nonempty
⊢ s = ∅ ∧ t = ∅ ∨ s.Nonempty ∧ t.Nonempty
state_after: no goals
Theorem: Rat.ofScientific_def
File: .lake/packages/batteries/Batteries/Data/Rat/Lemmas.lean

tactic: cases s
state_before: m : Nat
s : Bool
e : Nat
⊢ Rat.ofScientific m s e = if s = true then mkRat (↑m) (10 ^ e) else ↑(m * 10 ^ e)
state_after: case false
m e : Nat
⊢ Rat.ofScientific m false e = if false = true then mkRat (↑m) (10 ^ e) else ↑(m * 10 ^ e)

case true
m e : Nat
⊢ Rat.ofScientific m true e = if true = true then mkRat (↑m) (10 ^ e) else ↑(m * 10 ^ e)

tactic: exact ofScientific_false_def
state_before: case false
m e : Nat
⊢ Rat.ofScientific m false e = if false = true then mkRat (↑m) (10 ^ e) else ↑(m * 10 ^ e)

case true
m e : Nat
⊢ Rat.ofScientific m true e = if true = true then mkRat (↑m) (10 ^ e) else ↑(m * 10 ^ e)
state_after: case true
m e : Nat
⊢ Rat.ofScientific m true e = if true = true then mkRat (↑m) (10 ^ e) else ↑(m * 10 ^ e)

tactic: exact ofScientific_true_def
state_before: case true
m e : Nat
⊢ Rat.ofScientific m true e = if true = true then mkRat (↑m) (10 ^ e) else ↑(m * 10 ^ e)
state_after: no goals
Theorem: Trivialization.coe_linearMapAt_of_mem
File: Mathlib/Topology/VectorBundle/Basic.lean

tactic: simp_rw [coe_linearMapAt, if_pos hb]
state_before: R : Type u_1
B : Type u_2
F : Type u_3
E : B → Type u_4
inst✝⁸ : Semiring R
inst✝⁷ : TopologicalSpace F
inst✝⁶ : TopologicalSpace B
inst✝⁵ : TopologicalSpace (TotalSpace F E)
e✝ : Trivialization F TotalSpace.proj
x : TotalSpace F E
b✝ : B
y : E b✝
inst✝⁴ : AddCommMonoid F
inst✝³ : Module R F
inst✝² : (x : B) → AddCommMonoid (E x)
inst✝¹ : (x : B) → Module R (E x)
e : Trivialization F TotalSpace.proj
inst✝ : Trivialization.IsLinear R e
b : B
hb : b ∈ e.baseSet
⊢ ⇑(Trivialization.linearMapAt R e b) = fun y => (↑e { proj := b, snd := y }).2
state_after: no goals
Theorem: Matrix.conjTranspose_eq_natCast
File: Mathlib/Data/Matrix/Basic.lean

tactic: rw [conjTranspose_natCast]
state_before: l : Type u_1
m : Type u_2
n : Type u_3
o : Type u_4
m' : o → Type u_5
n' : o → Type u_6
R : Type u_7
S : Type u_8
α : Type v
β : Type w
γ : Type u_9
inst✝² : DecidableEq n
inst✝¹ : Semiring α
inst✝ : StarRing α
M : Matrix n n α
d : ℕ
⊢ M = (↑d)ᴴ ↔ M = ↑d
state_after: no goals
Theorem: integrableOn_Ici_iff_integrableOn_Ioi
File: Mathlib/MeasureTheory/Integral/IntegrableOn.lean

tactic: rw [measure_singleton]
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
inst✝² : PartialOrder α
inst✝¹ : MeasurableSingletonClass α
f : α → E
μ : Measure α
a b : α
inst✝ : NoAtoms μ
⊢ μ {b} ≠ ⊤
state_after: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
inst✝² : PartialOrder α
inst✝¹ : MeasurableSingletonClass α
f : α → E
μ : Measure α
a b : α
inst✝ : NoAtoms μ
⊢ 0 ≠ ⊤

tactic: exact ENNReal.zero_ne_top
state_before: α : Type u_1
β : Type u_2
E : Type u_3
F : Type u_4
inst✝⁴ : MeasurableSpace α
inst✝³ : NormedAddCommGroup E
inst✝² : PartialOrder α
inst✝¹ : MeasurableSingletonClass α
f : α → E
μ : Measure α
a b : α
inst✝ : NoAtoms μ
⊢ 0 ≠ ⊤
state_after: no goals
Theorem: CircleDeg1Lift.commute_add_nat
File: Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean

tactic: simp only [add_comm _ (n : ℝ), f.commute_nat_add n]
state_before: f g : CircleDeg1Lift
n : ℕ
⊢ Function.Commute ⇑f fun x => x + ↑n
state_after: no goals
Theorem: Batteries.BinomialHeap.Imp.HeapNode.realSize_toHeap
File: .lake/packages/batteries/Batteries/Data/BinomialHeap/Basic.lean

tactic: simp [toHeap.go, go, Nat.add_assoc, Nat.add_left_comm]
state_before: α : Type u_1
s✝ : HeapNode α
n : Nat
res : Heap α
a : α
c s : HeapNode α
⊢ (toHeap.go (node a c s) n res).realSize = (node a c s).realSize + res.realSize
state_after: no goals
Theorem: Fintype.card_option
File: Mathlib/Data/Fintype/Option.lean

tactic: simp
state_before: α✝ : Type u_1
β : Type u_2
γ : Type u_3
α : Type u_4
inst✝ : Fintype α
⊢ none ∉ map Embedding.some univ
state_after: no goals
Theorem: Real.contDiff_arctan
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/ArctanDeriv.lean

tactic: simpa
state_before: n : ℕ∞
x : ℝ
this : cos (arctan x) ≠ 0
⊢ 1 / cos (↑tanPartialHomeomorph.symm x) ^ 2 ≠ 0
state_after: no goals
Theorem: LipschitzWith.min_const
File: Mathlib/Topology/MetricSpace/Lipschitz.lean

tactic: simpa only [max_eq_left (zero_le Kf)] using hf.min (LipschitzWith.const a)
state_before: α : Type u
β : Type v
γ : Type w
ι : Type x
inst✝ : PseudoEMetricSpace α
f g : α → ℝ
Kf Kg : ℝ≥0
hf : LipschitzWith Kf f
a : ℝ
⊢ LipschitzWith Kf fun x => min (f x) a
state_after: no goals
Theorem: Fin.card_fintypeIci
File: Mathlib/Order/Interval/Finset/Fin.lean

tactic: rw [Fintype.card_ofFinset, card_Ici]
state_before: n : ℕ
a b : Fin n
⊢ Fintype.card ↑(Set.Ici a) = n - ↑a
state_after: no goals
Theorem: MeasureTheory.Measure.iInf_IicSnd_gt
File: Mathlib/Probability/Kernel/Disintegration/CondCdf.lean

tactic: simp_rw [ρ.IicSnd_apply _ hs, Measure.iInf_rat_gt_prod_Iic hs]
state_before: α : Type u_1
β : Type u_2
mα : MeasurableSpace α
ρ : Measure (α × ℝ)
t : ℚ
s : Set α
hs : MeasurableSet s
inst✝ : IsFiniteMeasure ρ
⊢ ⨅ r, (ρ.IicSnd ↑↑r) s = (ρ.IicSnd ↑t) s
state_after: no goals
Theorem: ProbabilityTheory.gammaCDFReal_eq_integral
File: Mathlib/Probability/Distributions/Gamma.lean

tactic: have : IsProbabilityMeasure (gammaMeasure a r) := isProbabilityMeasureGamma ha hr
state_before: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
⊢ ↑(gammaCDFReal a r) x = ∫ (x : ℝ) in Iic x, gammaPDFReal a r x
state_after: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ ↑(gammaCDFReal a r) x = ∫ (x : ℝ) in Iic x, gammaPDFReal a r x

tactic: rw [gammaCDFReal, cdf_eq_toReal, gammaMeasure, withDensity_apply _ measurableSet_Iic]
state_before: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ ↑(gammaCDFReal a r) x = ∫ (x : ℝ) in Iic x, gammaPDFReal a r x
state_after: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ (∫⁻ (a_1 : ℝ) in Iic x, gammaPDF a r a_1).toReal = ∫ (x : ℝ) in Iic x, gammaPDFReal a r x

tactic: refine (integral_eq_lintegral_of_nonneg_ae ?_ ?_).symm
state_before: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ (∫⁻ (a_1 : ℝ) in Iic x, gammaPDF a r a_1).toReal = ∫ (x : ℝ) in Iic x, gammaPDFReal a r x
state_after: case refine_1
a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ 0 ≤ᶠ[ae (ℙ.restrict (Iic x))] gammaPDFReal a r

case refine_2
a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ AEStronglyMeasurable (gammaPDFReal a r) (ℙ.restrict (Iic x))

tactic: exact ae_of_all _ fun b ↦ by simp only [Pi.zero_apply, gammaPDFReal_nonneg ha hr]
state_before: case refine_1
a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ 0 ≤ᶠ[ae (ℙ.restrict (Iic x))] gammaPDFReal a r
state_after: no goals

tactic: simp only [Pi.zero_apply, gammaPDFReal_nonneg ha hr]
state_before: a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
b : ℝ
⊢ 0 b ≤ gammaPDFReal a r b
state_after: no goals

tactic: exact (measurable_gammaPDFReal a r).aestronglyMeasurable.restrict
state_before: case refine_2
a r : ℝ
ha : 0 < a
hr : 0 < r
x : ℝ
this : IsProbabilityMeasure (gammaMeasure a r)
⊢ AEStronglyMeasurable (gammaPDFReal a r) (ℙ.restrict (Iic x))
state_after: no goals
Theorem: PartialHomeomorph.restr_toPartialEquiv'
File: Mathlib/Topology/PartialHomeomorph.lean

tactic: rw [e.restr_toPartialEquiv, hs.interior_eq]
state_before: X : Type u_1
X' : Type u_2
Y : Type u_3
Y' : Type u_4
Z : Type u_5
Z' : Type u_6
inst✝⁵ : TopologicalSpace X
inst✝⁴ : TopologicalSpace X'
inst✝³ : TopologicalSpace Y
inst✝² : TopologicalSpace Y'
inst✝¹ : TopologicalSpace Z
inst✝ : TopologicalSpace Z'
e : PartialHomeomorph X Y
s : Set X
hs : IsOpen s
⊢ (e.restr s).toPartialEquiv = e.restr s
state_after: no goals
Theorem: Filter.Tendsto.atBot_mul_const'
File: Mathlib/Order/Filter/Archimedean.lean

tactic: simp only [← tendsto_neg_atTop_iff, ← neg_mul] at hf ⊢
state_before: α : Type u_1
R : Type u_2
l : Filter α
f : α → R
r : R
inst✝¹ : LinearOrderedRing R
inst✝ : Archimedean R
hr : 0 < r
hf : Tendsto f l atBot
⊢ Tendsto (fun x => f x * r) l atBot
state_after: α : Type u_1
R : Type u_2
l : Filter α
f : α → R
r : R
inst✝¹ : LinearOrderedRing R
inst✝ : Archimedean R
hr : 0 < r
hf : Tendsto (fun x => -f x) l atTop
⊢ Tendsto (fun x => -f x * r) l atTop

tactic: exact hf.atTop_mul_const' hr
state_before: α : Type u_1
R : Type u_2
l : Filter α
f : α → R
r : R
inst✝¹ : LinearOrderedRing R
inst✝ : Archimedean R
hr : 0 < r
hf : Tendsto (fun x => -f x) l atTop
⊢ Tendsto (fun x => -f x * r) l atTop
state_after: no goals
Theorem: IsOpen.mul_right
File: Mathlib/Topology/Algebra/Group/Basic.lean

tactic: rw [← iUnion_op_smul_set]
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : ContinuousConstSMul αᵐᵒᵖ α
s t : Set α
hs : IsOpen s
⊢ IsOpen (s * t)
state_after: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : ContinuousConstSMul αᵐᵒᵖ α
s t : Set α
hs : IsOpen s
⊢ IsOpen (⋃ a ∈ t, op a • s)

tactic: exact isOpen_biUnion fun a _ => hs.smul _
state_before: G : Type w
H : Type x
α : Type u
β : Type v
inst✝² : TopologicalSpace α
inst✝¹ : Group α
inst✝ : ContinuousConstSMul αᵐᵒᵖ α
s t : Set α
hs : IsOpen s
⊢ IsOpen (⋃ a ∈ t, op a • s)
state_after: no goals
Theorem: List.get_splitWrtCompositionAux
File: Mathlib/Combinatorics/Enumerative/Composition.lean

tactic: simp [getElem_splitWrtCompositionAux]
state_before: n : ℕ
α : Type u_1
l : List α
ns : List ℕ
i : ℕ
hi : i < (l.splitWrtCompositionAux ns).length
⊢ (l.splitWrtCompositionAux ns).get ⟨i, hi⟩ = drop (take i ns).sum (take (take (i + 1) ns).sum l)
state_after: no goals
Theorem: Finset.preimage_inter
File: Mathlib/Data/Finset/Preimage.lean

tactic: simp
state_before: α : Type u
β : Type v
ι : Sort w
γ : Type x
inst✝¹ : DecidableEq α
inst✝ : DecidableEq β
f : α → β
s t : Finset β
hs : InjOn f (f ⁻¹' ↑s)
ht : InjOn f (f ⁻¹' ↑t)
⊢ ↑((s ∩ t).preimage f ⋯) = ↑(s.preimage f hs ∩ t.preimage f ht)
state_after: no goals
Theorem: Class.sUnion_empty
File: Mathlib/SetTheory/ZFC/Basic.lean

tactic: ext
state_before: ⊢ ⋃₀ ∅ = ∅
state_after: case a
z✝ : ZFSet
⊢ (⋃₀ ∅) z✝ ↔ ∅ z✝

tactic: simp
state_before: case a
z✝ : ZFSet
⊢ (⋃₀ ∅) z✝ ↔ ∅ z✝
state_after: no goals
Theorem: Matrix.circulant_injective
File: Mathlib/LinearAlgebra/Matrix/Circulant.lean

tactic: intro v w h
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
R : Type u_5
inst✝ : AddGroup n
⊢ Injective circulant
state_after: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
R : Type u_5
inst✝ : AddGroup n
v w : n → α
h : circulant v = circulant w
⊢ v = w

tactic: ext k
state_before: α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
R : Type u_5
inst✝ : AddGroup n
v w : n → α
h : circulant v = circulant w
⊢ v = w
state_after: case h
α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
R : Type u_5
inst✝ : AddGroup n
v w : n → α
h : circulant v = circulant w
k : n
⊢ v k = w k

tactic: rw [← circulant_col_zero_eq v, ← circulant_col_zero_eq w, h]
state_before: case h
α : Type u_1
β : Type u_2
m : Type u_3
n : Type u_4
R : Type u_5
inst✝ : AddGroup n
v w : n → α
h : circulant v = circulant w
k : n
⊢ v k = w k
state_after: no goals