1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: ModelWithCorners.disjoint_interior_boundary
File: Mathlib/Geometry/Manifold/InteriorBoundary.lean

tactic: by_contra h
state_before: 𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
⊢ Disjoint (I.interior M) (I.boundary M)
state_after: 𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
h : ¬Disjoint (I.interior M) (I.boundary M)
⊢ False

tactic: obtain ⟨x, h1, h2⟩ := not_disjoint_iff.mp h
state_before: 𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
h : ¬Disjoint (I.interior M) (I.boundary M)
⊢ False
state_after: case intro.intro
𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
h : ¬Disjoint (I.interior M) (I.boundary M)
x : M
h1 : x ∈ I.interior M
h2 : x ∈ I.boundary M
⊢ False

tactic: rw [← mem_empty_iff_false (extChartAt I x x),
  ← disjoint_iff_inter_eq_empty.mp (disjoint_interior_frontier (s := range I)), mem_inter_iff]
state_before: case intro.intro
𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
h : ¬Disjoint (I.interior M) (I.boundary M)
x : M
h1 : x ∈ I.interior M
h2 : x ∈ I.boundary M
⊢ False
state_after: case intro.intro
𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
h : ¬Disjoint (I.interior M) (I.boundary M)
x : M
h1 : x ∈ I.interior M
h2 : x ∈ I.boundary M
⊢ ↑(extChartAt I x) x ∈ interior (range ↑I) ∧ ↑(extChartAt I x) x ∈ frontier (range ↑I)

tactic: exact ⟨h1, h2⟩
state_before: case intro.intro
𝕜 : Type u_1
inst✝⁵ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝⁴ : NormedAddCommGroup E
inst✝³ : NormedSpace 𝕜 E
H : Type u_3
inst✝² : TopologicalSpace H
I : ModelWithCorners 𝕜 E H
M : Type u_4
inst✝¹ : TopologicalSpace M
inst✝ : ChartedSpace H M
h : ¬Disjoint (I.interior M) (I.boundary M)
x : M
h1 : x ∈ I.interior M
h2 : x ∈ I.boundary M
⊢ ↑(extChartAt I x) x ∈ interior (range ↑I) ∧ ↑(extChartAt I x) x ∈ frontier (range ↑I)
state_after: no goals
Theorem: MeasureTheory.lintegral_dirac
File: Mathlib/MeasureTheory/Integral/Lebesgue.lean

tactic: simp [lintegral_congr_ae (ae_eq_dirac f)]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
δ : Type u_4
m : MeasurableSpace α
μ ν : Measure α
inst✝¹ : MeasurableSpace α
inst✝ : MeasurableSingletonClass α
a : α
f : α → ℝ≥0∞
⊢ ∫⁻ (a : α), f a ∂dirac a = f a
state_after: no goals
Theorem: Finset.singleton_biUnion
File: Mathlib/Data/Finset/Union.lean

tactic: classical rw [← insert_emptyc_eq, biUnion_insert, biUnion_empty, union_empty]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s s₁ s₂ : Finset α
t t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
a : α
⊢ {a}.biUnion t = t a
state_after: no goals

tactic: rw [← insert_emptyc_eq, biUnion_insert, biUnion_empty, union_empty]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
s s₁ s₂ : Finset α
t t₁ t₂ : α → Finset β
inst✝ : DecidableEq β
a : α
⊢ {a}.biUnion t = t a
state_after: no goals
Theorem: Finset.card_inter_add_card_union
File: Mathlib/Data/Finset/Card.lean

tactic: rw [add_comm, card_union_add_card_inter]
state_before: α : Type u_1
β : Type u_2
R : Type u_3
s✝ t✝ u : Finset α
f : α → β
n : ℕ
inst✝ : DecidableEq α
s t : Finset α
⊢ (s ∩ t).card + (s ∪ t).card = s.card + t.card
state_after: no goals
Theorem: Int.ofNat_ceil_eq_ceil
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [← Int.ceil_toNat, Int.toNat_of_nonneg (Int.ceil_nonneg ha)]
state_before: F : Type u_1
α : Type u_2
β : Type u_3
inst✝¹ : LinearOrderedRing α
inst✝ : FloorRing α
a : α
ha : 0 ≤ a
⊢ ↑⌈a⌉₊ = ⌈a⌉
state_after: no goals
Theorem: EuclideanGeometry.preimage_inversion_perpBisector
File: Mathlib/Geometry/Euclidean/Inversion/ImageHyperplane.lean

tactic: rw [← dist_inversion_center, ← preimage_inversion_perpBisector_inversion hR,
  inversion_inversion] <;> simp [*]
state_before: V : Type u_1
P : Type u_2
inst✝³ : NormedAddCommGroup V
inst✝² : InnerProductSpace ℝ V
inst✝¹ : MetricSpace P
inst✝ : NormedAddTorsor V P
c x y : P
R : ℝ
hR : R ≠ 0
hy : y ≠ c
⊢ inversion c R ⁻¹' ↑(perpBisector c y) = sphere (inversion c R y) (R ^ 2 / dist y c) \ {c}
state_after: no goals
Theorem: Int.Prime.dvd_natAbs_of_coe_dvd_sq
File: Mathlib/Data/Int/NatPrime.lean

tactic: apply @Nat.Prime.dvd_of_dvd_pow _ _ 2 hp
state_before: p : ℕ
hp : Nat.Prime p
k : ℤ
h : ↑p ∣ k ^ 2
⊢ p ∣ k.natAbs
state_after: p : ℕ
hp : Nat.Prime p
k : ℤ
h : ↑p ∣ k ^ 2
⊢ p ∣ k.natAbs ^ 2

tactic: rwa [sq, ← natAbs_mul, ← natCast_dvd, ← sq]
state_before: p : ℕ
hp : Nat.Prime p
k : ℤ
h : ↑p ∣ k ^ 2
⊢ p ∣ k.natAbs ^ 2
state_after: no goals
Theorem: CategoryTheory.Limits.MonoFactorisation.kernel_ι_comp
File: Mathlib/CategoryTheory/Limits/Shapes/Kernels.lean

tactic: rw [← cancel_mono F.m, zero_comp, Category.assoc, F.fac, kernel.condition]
state_before: C : Type u
inst✝² : Category.{v, u} C
inst✝¹ : HasZeroMorphisms C
X Y : C
f : X ⟶ Y
inst✝ : HasKernel f
F : MonoFactorisation f
⊢ kernel.ι f ≫ F.e = 0
state_after: no goals
Theorem: Multiset.coe_mem
File: Mathlib/Data/Multiset/Fintype.lean

tactic: have := x.2.2
state_before: α : Type u_1
inst✝ : DecidableEq α
m : Multiset α
x : m.ToType
⊢ 0 < count x.fst m
state_after: α : Type u_1
inst✝ : DecidableEq α
m : Multiset α
x : m.ToType
this : ↑x.snd < count x.fst m
⊢ 0 < count x.fst m

tactic: omega
state_before: α : Type u_1
inst✝ : DecidableEq α
m : Multiset α
x : m.ToType
this : ↑x.snd < count x.fst m
⊢ 0 < count x.fst m
state_after: no goals
Theorem: MeasureTheory.martingale_zero
File: Mathlib/Probability/Martingale/Basic.lean

tactic: rw [Pi.zero_apply, condexp_zero]
state_before: Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝³ : Preorder ι
m0 : MeasurableSpace Ω
μ✝ : Measure Ω
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f g : ι → Ω → E
ℱ✝ ℱ : Filtration ι m0
μ : Measure Ω
i j : ι
x✝ : i ≤ j
⊢ μ[0 j|↑ℱ i] =ᶠ[ae μ] 0 i
state_after: Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝³ : Preorder ι
m0 : MeasurableSpace Ω
μ✝ : Measure Ω
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f g : ι → Ω → E
ℱ✝ ℱ : Filtration ι m0
μ : Measure Ω
i j : ι
x✝ : i ≤ j
⊢ 0 =ᶠ[ae μ] 0 i

tactic: simp
state_before: Ω : Type u_1
E : Type u_2
ι : Type u_3
inst✝³ : Preorder ι
m0 : MeasurableSpace Ω
μ✝ : Measure Ω
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedSpace ℝ E
inst✝ : CompleteSpace E
f g : ι → Ω → E
ℱ✝ ℱ : Filtration ι m0
μ : Measure Ω
i j : ι
x✝ : i ≤ j
⊢ 0 =ᶠ[ae μ] 0 i
state_after: no goals
Theorem: IsAntichain.subsingleton
File: Mathlib/Order/Antichain.lean

tactic: rintro a ha b hb
state_before: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a b : α
inst✝ : IsTrichotomous α r
h : IsAntichain r s
⊢ s.Subsingleton
state_after: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsTrichotomous α r
h : IsAntichain r s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
⊢ a = b

tactic: obtain hab | hab | hab := trichotomous_of r a b
state_before: α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsTrichotomous α r
h : IsAntichain r s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
⊢ a = b
state_after: case inl
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsTrichotomous α r
h : IsAntichain r s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : r a b
⊢ a = b

case inr.inl
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsTrichotomous α r
h : IsAntichain r s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : a = b
⊢ a = b

case inr.inr
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsTrichotomous α r
h : IsAntichain r s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : r b a
⊢ a = b

tactic: exact h.eq ha hb hab
state_before: case inl
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsTrichotomous α r
h : IsAntichain r s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : r a b
⊢ a = b
state_after: no goals

tactic: exact hab
state_before: case inr.inl
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsTrichotomous α r
h : IsAntichain r s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : a = b
⊢ a = b
state_after: no goals

tactic: exact h.eq' ha hb hab
state_before: case inr.inr
α : Type u_1
β : Type u_2
r r₁ r₂ : α → α → Prop
r' : β → β → Prop
s t : Set α
a✝ b✝ : α
inst✝ : IsTrichotomous α r
h : IsAntichain r s
a : α
ha : a ∈ s
b : α
hb : b ∈ s
hab : r b a
⊢ a = b
state_after: no goals
Theorem: IsPrimitiveRoot.isUnit
File: Mathlib/RingTheory/RootsOfUnity/Basic.lean

tactic: apply isUnit_of_mul_eq_one ζ (ζ ^ (k - 1))
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l : ℕ
ζ : M
f : F
h✝ h : IsPrimitiveRoot ζ k
h0 : 0 < k
⊢ IsUnit ζ
state_after: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l : ℕ
ζ : M
f : F
h✝ h : IsPrimitiveRoot ζ k
h0 : 0 < k
⊢ ζ * ζ ^ (k - 1) = 1

tactic: rw [← pow_succ', tsub_add_cancel_of_le h0.nat_succ_le, h.pow_eq_one]
state_before: M : Type u_1
N : Type u_2
G : Type u_3
R : Type u_4
S : Type u_5
F : Type u_6
inst✝² : CommMonoid M
inst✝¹ : CommMonoid N
inst✝ : DivisionCommMonoid G
k l : ℕ
ζ : M
f : F
h✝ h : IsPrimitiveRoot ζ k
h0 : 0 < k
⊢ ζ * ζ ^ (k - 1) = 1
state_after: no goals
Theorem: Polynomial.associated_of_dvd_of_degree_eq
File: Mathlib/Algebra/Polynomial/RingDivision.lean

tactic: simpa [hq] using h₁
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝² : CommRing R
inst✝¹ : IsDomain R
p✝ q✝ : R[X]
K : Type u_1
inst✝ : Field K
p q : K[X]
hpq : p ∣ q
h₁ : p.degree = q.degree
hq : q = 0
⊢ p = q
state_after: no goals
Theorem: integrableOn_Ioc_iff_integrableOn_Ioo
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: List.get_inits
File: Mathlib/Data/List/Infix.lean

tactic: simp
state_before: α : Type u_1
β : Type u_2
l✝ l₁ l₂ l₃ : List α
a b : α
m n✝ : ℕ
l : List α
n : Fin l.inits.length
⊢ l.inits.get n = take (↑n) l
state_after: no goals
Theorem: MeasureTheory.Measure.setLIntegral_condKernel_univ_left
File: Mathlib/Probability/Kernel/Disintegration/Integral.lean

tactic: rw [← setLIntegral_condKernel hf MeasurableSet.univ ht]
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
ρ : Measure (β × Ω)
inst✝ : IsFiniteMeasure ρ
f : β × Ω → ℝ≥0∞
hf : Measurable f
t : Set Ω
ht : MeasurableSet t
⊢ ∫⁻ (b : β), ∫⁻ (ω : Ω) in t, f (b, ω) ∂ρ.condKernel b ∂ρ.fst = ∫⁻ (x : β × Ω) in Set.univ ×ˢ t, f x ∂ρ
state_after: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
ρ : Measure (β × Ω)
inst✝ : IsFiniteMeasure ρ
f : β × Ω → ℝ≥0∞
hf : Measurable f
t : Set Ω
ht : MeasurableSet t
⊢ ∫⁻ (b : β), ∫⁻ (ω : Ω) in t, f (b, ω) ∂ρ.condKernel b ∂ρ.fst =
    ∫⁻ (b : β) in Set.univ, ∫⁻ (ω : Ω) in t, f (b, ω) ∂ρ.condKernel b ∂ρ.fst

tactic: simp_rw [Measure.restrict_univ]
state_before: α : Type u_1
β : Type u_2
Ω : Type u_3
mα : MeasurableSpace α
mβ : MeasurableSpace β
inst✝⁴ : MeasurableSpace Ω
inst✝³ : StandardBorelSpace Ω
inst✝² : Nonempty Ω
inst✝¹ : CountableOrCountablyGenerated α β
ρ : Measure (β × Ω)
inst✝ : IsFiniteMeasure ρ
f : β × Ω → ℝ≥0∞
hf : Measurable f
t : Set Ω
ht : MeasurableSet t
⊢ ∫⁻ (b : β), ∫⁻ (ω : Ω) in t, f (b, ω) ∂ρ.condKernel b ∂ρ.fst =
    ∫⁻ (b : β) in Set.univ, ∫⁻ (ω : Ω) in t, f (b, ω) ∂ρ.condKernel b ∂ρ.fst
state_after: no goals
Theorem: Basis.range_reindex
File: Mathlib/LinearAlgebra/Basis.lean

tactic: simp [coe_reindex, range_comp]
state_before: ι : Type u_1
ι' : Type u_2
R : Type u_3
R₂ : Type u_4
K : Type u_5
M : Type u_6
M' : Type u_7
M'' : Type u_8
V : Type u
V' : Type u_9
inst✝⁴ : Semiring R
inst✝³ : AddCommMonoid M
inst✝² : Module R M
inst✝¹ : AddCommMonoid M'
inst✝ : Module R M'
b b₁ : Basis ι R M
i : ι
c : R
x : M
b' : Basis ι' R M'
e : ι ≃ ι'
⊢ range ⇑(b.reindex e) = range ⇑b
state_after: no goals
Theorem: WeierstrassCurve.Jacobian.neg_of_Z_eq_zero'
File: Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian.lean

tactic: rw [neg, negY_of_Z_eq_zero hPz, hPz]
state_before: R : Type u
inst✝¹ : CommRing R
W' : Jacobian R
F : Type v
inst✝ : Field F
W : Jacobian F
P : Fin 3 → R
hPz : P z = 0
⊢ W'.neg P = ![P x, -P y, 0]
state_after: no goals
Theorem: Behrend.lower_bound_le_one'
File: Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean

tactic: rw [← log_le_log_iff (mul_pos (cast_pos.2 (zero_lt_two.trans_le hN)) (exp_pos _)) zero_lt_one,
  log_one, log_mul (cast_pos.2 (zero_lt_two.trans_le hN)).ne' (exp_pos _).ne', log_exp, neg_mul, ←
  sub_eq_add_neg, sub_nonpos, ←
  div_le_iff (Real.sqrt_pos.2 <| log_pos <| one_lt_cast.2 <| one_lt_two.trans_le hN), div_sqrt,
  sqrt_le_left zero_le_four, log_le_iff_le_exp (cast_pos.2 (zero_lt_two.trans_le hN))]
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
hN : 2 ≤ N
hN' : N ≤ 4096
⊢ ↑N * rexp (-4 * √(log ↑N)) ≤ 1
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
hN : 2 ≤ N
hN' : N ≤ 4096
⊢ ↑N ≤ rexp (4 ^ 2)

tactic: norm_num1
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
hN : 2 ≤ N
hN' : N ≤ 4096
⊢ ↑N ≤ rexp (4 ^ 2)
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
hN : 2 ≤ N
hN' : N ≤ 4096
⊢ ↑N ≤ rexp 16

tactic: apply le_trans _ four_zero_nine_six_lt_exp_sixteen.le
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
hN : 2 ≤ N
hN' : N ≤ 4096
⊢ ↑N ≤ rexp 16
state_after: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
hN : 2 ≤ N
hN' : N ≤ 4096
⊢ ↑N ≤ 4096

tactic: exact mod_cast hN'
state_before: α : Type u_1
β : Type u_2
n d k N : ℕ
x : Fin n → ℕ
hN : 2 ≤ N
hN' : N ≤ 4096
⊢ ↑N ≤ 4096
state_after: no goals
Theorem: nhds_eq_uniformity_prod
File: Mathlib/Topology/UniformSpace/Basic.lean

tactic: rw [nhds_prod_eq, nhds_nhds_eq_uniformity_uniformity_prod, lift_lift'_same_eq_lift']
state_before: α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
a b : α
⊢ 𝓝 (a, b) = (𝓤 α).lift' fun s => {y | (y, a) ∈ s} ×ˢ {y | (b, y) ∈ s}
state_after: case hg₁
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
a b : α
⊢ ∀ (s : Set (α × α)), Monotone fun t => {y | (y, a) ∈ s} ×ˢ {y | (b, y) ∈ t}

case hg₂
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
a b : α
⊢ ∀ (t : Set (α × α)), Monotone fun s => {y | (y, a) ∈ s} ×ˢ {y | (b, y) ∈ t}

tactic: exact fun s => monotone_const.set_prod monotone_preimage
state_before: case hg₁
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
a b : α
⊢ ∀ (s : Set (α × α)), Monotone fun t => {y | (y, a) ∈ s} ×ˢ {y | (b, y) ∈ t}
state_after: no goals

tactic: refine fun t => Monotone.set_prod ?_ monotone_const
state_before: case hg₂
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
a b : α
⊢ ∀ (t : Set (α × α)), Monotone fun s => {y | (y, a) ∈ s} ×ˢ {y | (b, y) ∈ t}
state_after: case hg₂
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
a b : α
t : Set (α × α)
⊢ Monotone fun s => {y | (y, a) ∈ s}

tactic: exact monotone_preimage (f := fun y => (y, a))
state_before: case hg₂
α : Type ua
β : Type ub
γ : Type uc
δ : Type ud
ι : Sort u_1
inst✝ : UniformSpace α
a b : α
t : Set (α × α)
⊢ Monotone fun s => {y | (y, a) ∈ s}
state_after: no goals
Theorem: swap_dist
File: Mathlib/Topology/MetricSpace/Pseudo/Defs.lean

tactic: funext x y
state_before: α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
⊢ Function.swap dist = dist
state_after: case h.h
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y : α
⊢ Function.swap dist x y = dist x y

tactic: exact dist_comm _ _
state_before: case h.h
α : Type u
β : Type v
X : Type u_1
ι : Type u_2
inst✝ : PseudoMetricSpace α
x y : α
⊢ Function.swap dist x y = dist x y
state_after: no goals
Theorem: Filter.hasBasis_self
File: Mathlib/Order/Filter/Bases.lean

tactic: simp only [hasBasis_iff, id, and_assoc]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l✝ l' : Filter α
p : ι → Prop
s : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
l : Filter α
P : Set α → Prop
⊢ l.HasBasis (fun s => s ∈ l ∧ P s) id ↔ ∀ t ∈ l, ∃ r ∈ l, P r ∧ r ⊆ t
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l✝ l' : Filter α
p : ι → Prop
s : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
l : Filter α
P : Set α → Prop
⊢ (∀ (t : Set α), t ∈ l ↔ ∃ i ∈ l, P i ∧ i ⊆ t) ↔ ∀ t ∈ l, ∃ r ∈ l, P r ∧ r ⊆ t

tactic: exact forall_congr' fun s =>
  ⟨fun h => h.1, fun h => ⟨h, fun ⟨t, hl, _, hts⟩ => mem_of_superset hl hts⟩⟩
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
l✝ l' : Filter α
p : ι → Prop
s : ι → Set α
t : Set α
i : ι
p' : ι' → Prop
s' : ι' → Set α
i' : ι'
l : Filter α
P : Set α → Prop
⊢ (∀ (t : Set α), t ∈ l ↔ ∃ i ∈ l, P i ∧ i ⊆ t) ↔ ∀ t ∈ l, ∃ r ∈ l, P r ∧ r ⊆ t
state_after: no goals
Theorem: CategoryTheory.Preadditive.cokernelCoforkOfCofork_ofπ
File: Mathlib/CategoryTheory/Preadditive/Basic.lean

tactic: simp [w]
state_before: C : Type u
inst✝¹ : Category.{v, u} C
inst✝ : Preadditive C
X Y : C
f g : X ⟶ Y
P : C
π : Y ⟶ P
w : f ≫ π = g ≫ π
⊢ (f - g) ≫ π = 0
state_after: no goals
Theorem: Polynomial.aroots_mul
File: Mathlib/Algebra/Polynomial/Roots.lean

tactic: suffices map (algebraMap T S) p * map (algebraMap T S) q ≠ 0 by
  rw [aroots_def, Polynomial.map_mul, roots_mul this]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p✝ q✝ : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
p q : T[X]
hpq : p * q ≠ 0
⊢ (p * q).aroots S = p.aroots S + q.aroots S
state_after: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p✝ q✝ : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
p q : T[X]
hpq : p * q ≠ 0
⊢ map (algebraMap T S) p * map (algebraMap T S) q ≠ 0

tactic: rwa [← Polynomial.map_mul, Polynomial.map_ne_zero_iff
  (NoZeroSMulDivisors.algebraMap_injective T S)]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p✝ q✝ : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
p q : T[X]
hpq : p * q ≠ 0
⊢ map (algebraMap T S) p * map (algebraMap T S) q ≠ 0
state_after: no goals

tactic: rw [aroots_def, Polynomial.map_mul, roots_mul this]
state_before: R : Type u
S : Type v
T : Type w
a b : R
n : ℕ
inst✝⁶ : CommRing R
inst✝⁵ : IsDomain R
p✝ q✝ : R[X]
inst✝⁴ : CommRing T
inst✝³ : CommRing S
inst✝² : IsDomain S
inst✝¹ : Algebra T S
inst✝ : NoZeroSMulDivisors T S
p q : T[X]
hpq : p * q ≠ 0
this : map (algebraMap T S) p * map (algebraMap T S) q ≠ 0
⊢ (p * q).aroots S = p.aroots S + q.aroots S
state_after: no goals
Theorem: SimpleGraph.LocallyLinear.map
File: Mathlib/Combinatorics/SimpleGraph/Triangle/Basic.lean

tactic: refine ⟨hG.1.map _, ?_⟩
state_before: α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
f : α ↪ β
hG : G.LocallyLinear
⊢ (SimpleGraph.map f G).LocallyLinear
state_after: α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
f : α ↪ β
hG : G.LocallyLinear
⊢ ∀ ⦃x y : β⦄, (SimpleGraph.map f G).Adj x y → ∃ s, (SimpleGraph.map f G).IsNClique 3 s ∧ x ∈ s ∧ y ∈ s

tactic: rintro _ _ ⟨a, b, h, rfl, rfl⟩
state_before: α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
f : α ↪ β
hG : G.LocallyLinear
⊢ ∀ ⦃x y : β⦄, (SimpleGraph.map f G).Adj x y → ∃ s, (SimpleGraph.map f G).IsNClique 3 s ∧ x ∈ s ∧ y ∈ s
state_after: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
f : α ↪ β
hG : G.LocallyLinear
a b : α
h : G.Adj a b
⊢ ∃ s, (SimpleGraph.map f G).IsNClique 3 s ∧ f a ∈ s ∧ f b ∈ s

tactic: obtain ⟨s, hs, ha, hb⟩ := hG.2 h
state_before: case intro.intro.intro.intro
α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s : Finset α
f : α ↪ β
hG : G.LocallyLinear
a b : α
h : G.Adj a b
⊢ ∃ s, (SimpleGraph.map f G).IsNClique 3 s ∧ f a ∈ s ∧ f b ∈ s
state_after: case intro.intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s✝ : Finset α
f : α ↪ β
hG : G.LocallyLinear
a b : α
h : G.Adj a b
s : Finset α
hs : G.IsNClique 3 s
ha : a ∈ s
hb : b ∈ s
⊢ ∃ s, (SimpleGraph.map f G).IsNClique 3 s ∧ f a ∈ s ∧ f b ∈ s

tactic: exact ⟨s.map f, hs.map, mem_map_of_mem _ ha, mem_map_of_mem _ hb⟩
state_before: case intro.intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
𝕜 : Type u_3
inst✝ : LinearOrderedField 𝕜
G H : SimpleGraph α
ε δ : 𝕜
n : ℕ
s✝ : Finset α
f : α ↪ β
hG : G.LocallyLinear
a b : α
h : G.Adj a b
s : Finset α
hs : G.IsNClique 3 s
ha : a ∈ s
hb : b ∈ s
⊢ ∃ s, (SimpleGraph.map f G).IsNClique 3 s ∧ f a ∈ s ∧ f b ∈ s
state_after: no goals