1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: IsPrimitiveRoot.zeta_sub_one_prime
File: Mathlib/NumberTheory/Cyclotomic/Rat.lean

tactic: by_cases htwo : p = 2
state_before: p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {p ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))
⊢ Prime (hζ.toInteger - 1)
state_after: case pos
p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {p ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))
htwo : p = 2
⊢ Prime (hζ.toInteger - 1)

case neg
p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {p ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))
htwo : ¬p = 2
⊢ Prime (hζ.toInteger - 1)

tactic: subst htwo
state_before: case pos
p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {p ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))
htwo : p = 2
⊢ Prime (hζ.toInteger - 1)
state_after: case pos
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑2)
inst✝ : IsCyclotomicExtension {2 ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(2 ^ (k + 1))
⊢ Prime (hζ.toInteger - 1)

tactic: apply hζ.zeta_sub_one_prime_of_two_pow
state_before: case pos
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑2)
inst✝ : IsCyclotomicExtension {2 ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(2 ^ (k + 1))
⊢ Prime (hζ.toInteger - 1)
state_after: no goals

tactic: apply hζ.zeta_sub_one_prime_of_ne_two htwo
state_before: case neg
p : ℕ+
k : ℕ
K : Type u
inst✝² : Field K
inst✝¹ : CharZero K
ζ : K
hp : Fact (Nat.Prime ↑p)
inst✝ : IsCyclotomicExtension {p ^ (k + 1)} ℚ K
hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))
htwo : ¬p = 2
⊢ Prime (hζ.toInteger - 1)
state_after: no goals
Theorem: PrimeSpectrum.basicOpen_zero
File: Mathlib/AlgebraicGeometry/PrimeSpectrum/Basic.lean

tactic: simp
state_before: R : Type u
S : Type v
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
⊢ ↑(basicOpen 0) = ↑⊥
state_after: no goals
Theorem: Multiset.noncommFold_cons
File: Mathlib/Data/Finset/NoncommProd.lean

tactic: induction s using Quotient.inductionOn
state_before: F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
assoc : Std.Associative op
s : Multiset α
a : α
h : {x | x ∈ a ::ₘ s}.Pairwise fun x y => op x y = op y x
h' : {x | x ∈ s}.Pairwise fun x y => op x y = op y x
x : α
⊢ noncommFold op (a ::ₘ s) h x = op a (noncommFold op s h' x)
state_after: case h
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
assoc : Std.Associative op
a x : α
a✝ : List α
h : {x | x ∈ a ::ₘ ⟦a✝⟧}.Pairwise fun x y => op x y = op y x
h' : {x | x ∈ ⟦a✝⟧}.Pairwise fun x y => op x y = op y x
⊢ noncommFold op (a ::ₘ ⟦a✝⟧) h x = op a (noncommFold op ⟦a✝⟧ h' x)

tactic: simp
state_before: case h
F : Type u_1
ι : Type u_2
α : Type u_3
β : Type u_4
γ : Type u_5
f : α → β → β
op : α → α → α
assoc : Std.Associative op
a x : α
a✝ : List α
h : {x | x ∈ a ::ₘ ⟦a✝⟧}.Pairwise fun x y => op x y = op y x
h' : {x | x ∈ ⟦a✝⟧}.Pairwise fun x y => op x y = op y x
⊢ noncommFold op (a ::ₘ ⟦a✝⟧) h x = op a (noncommFold op ⟦a✝⟧ h' x)
state_after: no goals
Theorem: MeasureTheory.laverage_zero
File: Mathlib/MeasureTheory/Integral/Average.lean

tactic: rw [laverage, lintegral_zero]
state_before: α : Type u_1
E : Type u_2
F : Type u_3
m0 : MeasurableSpace α
inst✝⁵ : NormedAddCommGroup E
inst✝⁴ : NormedSpace ℝ E
inst✝³ : CompleteSpace E
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedSpace ℝ F
inst✝ : CompleteSpace F
μ ν : Measure α
s t : Set α
f g : α → ℝ≥0∞
⊢ ⨍⁻ (_x : α), 0 ∂μ = 0
state_after: no goals
Theorem: Matrix.dotProduct_smul
File: Mathlib/Data/Matrix/Basic.lean

tactic: simp [dotProduct, Finset.smul_sum, mul_smul_comm]
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✝⁶ : Fintype m
inst✝⁵ : Fintype n
inst✝⁴ : Monoid R
inst✝³ : Mul α
inst✝² : AddCommMonoid α
inst✝¹ : DistribMulAction R α
inst✝ : SMulCommClass R α α
x : R
v w : m → α
⊢ v ⬝ᵥ x • w = x • (v ⬝ᵥ w)
state_after: no goals
Theorem: Finset.Nat.prod_antidiagonal_succ'
File: Mathlib/Algebra/BigOperators/NatAntidiagonal.lean

tactic: rw [← prod_antidiagonal_swap, prod_antidiagonal_succ, ← prod_antidiagonal_swap]
state_before: M : Type u_1
N : Type u_2
inst✝¹ : CommMonoid M
inst✝ : AddCommMonoid N
n : ℕ
f : ℕ × ℕ → M
⊢ ∏ p ∈ antidiagonal (n + 1), f p = f (n + 1, 0) * ∏ p ∈ antidiagonal n, f (p.1, p.2 + 1)
state_after: M : Type u_1
N : Type u_2
inst✝¹ : CommMonoid M
inst✝ : AddCommMonoid N
n : ℕ
f : ℕ × ℕ → M
⊢ f (0, n + 1).swap * ∏ p ∈ antidiagonal n, f (p.swap.1 + 1, p.swap.2).swap =
    f (n + 1, 0) * ∏ p ∈ antidiagonal n, f (p.1, p.2 + 1)

tactic: rfl
state_before: M : Type u_1
N : Type u_2
inst✝¹ : CommMonoid M
inst✝ : AddCommMonoid N
n : ℕ
f : ℕ × ℕ → M
⊢ f (0, n + 1).swap * ∏ p ∈ antidiagonal n, f (p.swap.1 + 1, p.swap.2).swap =
    f (n + 1, 0) * ∏ p ∈ antidiagonal n, f (p.1, p.2 + 1)
state_after: no goals
Theorem: ContinuousMap.ker_evalStarAlgHom_eq_closure_adjoin_id
File: Mathlib/Topology/ContinuousFunction/StoneWeierstrass.lean

tactic: rw [← ker_evalStarAlgHom_inter_adjoin_id s h0,
  AlgHom.closure_ker_inter (φ := evalStarAlgHom 𝕜 𝕜 (X := s) ⟨0, h0⟩) (continuous_eval_const _) _]
state_before: X : Type u_1
inst✝² : TopologicalSpace X
𝕜 : Type u_2
inst✝¹ : RCLike 𝕜
s : Set 𝕜
h0 : 0 ∈ s
inst✝ : CompactSpace ↑s
⊢ ↑(RingHom.ker (evalStarAlgHom 𝕜 𝕜 ⟨0, h0⟩)) = closure ↑(adjoin 𝕜 {restrict s (ContinuousMap.id 𝕜)})
state_after: X : Type u_1
inst✝² : TopologicalSpace X
𝕜 : Type u_2
inst✝¹ : RCLike 𝕜
s : Set 𝕜
h0 : 0 ∈ s
inst✝ : CompactSpace ↑s
⊢ ↑(RingHom.ker (evalStarAlgHom 𝕜 𝕜 ⟨0, h0⟩)) =
    closure ↑(StarAlgebra.adjoin 𝕜 {restrict s (ContinuousMap.id 𝕜)}) ∩ ↑(RingHom.ker (evalStarAlgHom 𝕜 𝕜 ⟨0, h0⟩))

tactic: convert (Set.univ_inter _).symm
state_before: X : Type u_1
inst✝² : TopologicalSpace X
𝕜 : Type u_2
inst✝¹ : RCLike 𝕜
s : Set 𝕜
h0 : 0 ∈ s
inst✝ : CompactSpace ↑s
⊢ ↑(RingHom.ker (evalStarAlgHom 𝕜 𝕜 ⟨0, h0⟩)) =
    closure ↑(StarAlgebra.adjoin 𝕜 {restrict s (ContinuousMap.id 𝕜)}) ∩ ↑(RingHom.ker (evalStarAlgHom 𝕜 𝕜 ⟨0, h0⟩))
state_after: case h.e'_3.h.e'_3
X : Type u_1
inst✝² : TopologicalSpace X
𝕜 : Type u_2
inst✝¹ : RCLike 𝕜
s : Set 𝕜
h0 : 0 ∈ s
inst✝ : CompactSpace ↑s
⊢ closure ↑(StarAlgebra.adjoin 𝕜 {restrict s (ContinuousMap.id 𝕜)}) = Set.univ

tactic: rw [← Polynomial.toContinuousMapOn_X_eq_restrict_id, ← Polynomial.toContinuousMapOnAlgHom_apply,
  ← polynomialFunctions.starClosure_eq_adjoin_X s]
state_before: case h.e'_3.h.e'_3
X : Type u_1
inst✝² : TopologicalSpace X
𝕜 : Type u_2
inst✝¹ : RCLike 𝕜
s : Set 𝕜
h0 : 0 ∈ s
inst✝ : CompactSpace ↑s
⊢ closure ↑(StarAlgebra.adjoin 𝕜 {restrict s (ContinuousMap.id 𝕜)}) = Set.univ
state_after: case h.e'_3.h.e'_3
X : Type u_1
inst✝² : TopologicalSpace X
𝕜 : Type u_2
inst✝¹ : RCLike 𝕜
s : Set 𝕜
h0 : 0 ∈ s
inst✝ : CompactSpace ↑s
⊢ closure ↑(polynomialFunctions s).starClosure = Set.univ

tactic: congrm(($(polynomialFunctions.starClosure_topologicalClosure s) : Set C(s, 𝕜)))
state_before: case h.e'_3.h.e'_3
X : Type u_1
inst✝² : TopologicalSpace X
𝕜 : Type u_2
inst✝¹ : RCLike 𝕜
s : Set 𝕜
h0 : 0 ∈ s
inst✝ : CompactSpace ↑s
⊢ closure ↑(polynomialFunctions s).starClosure = Set.univ
state_after: no goals
Theorem: CategoryTheory.HasShift.Induced.zero_hom_app_obj
File: Mathlib/CategoryTheory/Shift/Induced.lean

tactic: have h : whiskerLeft F (zero F s i).hom = _ :=
  ((whiskeringLeft C D D).obj F).map_preimage _
state_before: C : Type u_5
D : Type u_2
inst✝⁵ : Category.{u_4, u_5} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_3
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
X : C
⊢ (zero F s i).hom.app (F.obj X) = (i 0).hom.app X ≫ F.map ((shiftFunctorZero C A).hom.app X)
state_after: C : Type u_5
D : Type u_2
inst✝⁵ : Category.{u_4, u_5} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_3
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
X : C
h :
  whiskerLeft F (zero F s i).hom =
    (i 0 ≪≫ isoWhiskerRight (shiftFunctorZero C A) F ≪≫ F.leftUnitor ≪≫ F.rightUnitor.symm).hom
⊢ (zero F s i).hom.app (F.obj X) = (i 0).hom.app X ≫ F.map ((shiftFunctorZero C A).hom.app X)

tactic: exact (NatTrans.congr_app h X).trans (by simp)
state_before: C : Type u_5
D : Type u_2
inst✝⁵ : Category.{u_4, u_5} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_3
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
X : C
h :
  whiskerLeft F (zero F s i).hom =
    (i 0 ≪≫ isoWhiskerRight (shiftFunctorZero C A) F ≪≫ F.leftUnitor ≪≫ F.rightUnitor.symm).hom
⊢ (zero F s i).hom.app (F.obj X) = (i 0).hom.app X ≫ F.map ((shiftFunctorZero C A).hom.app X)
state_after: no goals

tactic: simp
state_before: C : Type u_5
D : Type u_2
inst✝⁵ : Category.{u_4, u_5} C
inst✝⁴ : Category.{u_1, u_2} D
F : C ⥤ D
A : Type u_3
inst✝³ : AddMonoid A
inst✝² : HasShift C A
s : A → D ⥤ D
i : (a : A) → F ⋙ s a ≅ shiftFunctor C a ⋙ F
inst✝¹ : ((whiskeringLeft C D D).obj F).Full
inst✝ : ((whiskeringLeft C D D).obj F).Faithful
X : C
h :
  whiskerLeft F (zero F s i).hom =
    (i 0 ≪≫ isoWhiskerRight (shiftFunctorZero C A) F ≪≫ F.leftUnitor ≪≫ F.rightUnitor.symm).hom
⊢ (i 0 ≪≫ isoWhiskerRight (shiftFunctorZero C A) F ≪≫ F.leftUnitor ≪≫ F.rightUnitor.symm).hom.app X =
    (i 0).hom.app X ≫ F.map ((shiftFunctorZero C A).hom.app X)
state_after: no goals
Theorem: sdiff_bot
File: Mathlib/Order/Heyting/Basic.lean

tactic: rw [sdiff_le_iff, bot_sup_eq]
state_before: ι : Type u_1
α : Type u_2
β : Type u_3
inst✝ : GeneralizedCoheytingAlgebra α
a b✝ c d b : α
⊢ a \ ⊥ ≤ b ↔ a ≤ b
state_after: no goals
Theorem: IsChain.exists3
File: Mathlib/Order/Chain.lean

tactic: rcases directedOn_iff_directed.mpr (IsChain.directed hchain) a mem1 b mem2 with ⟨z, mem4, H1, H2⟩
state_before: α : Type u_1
β : Type u_2
r : α → α → Prop
c✝ c₁ c₂ c₃ s t : Set α
a✝ b✝ x y : α
inst✝¹ : IsRefl α r
hchain : IsChain r s
inst✝ : IsTrans α r
a b c : α
mem1 : a ∈ s
mem2 : b ∈ s
mem3 : c ∈ s
⊢ ∃ z, ∃ (_ : z ∈ s), r a z ∧ r b z ∧ r c z
state_after: case intro.intro.intro
α : Type u_1
β : Type u_2
r : α → α → Prop
c✝ c₁ c₂ c₃ s t : Set α
a✝ b✝ x y : α
inst✝¹ : IsRefl α r
hchain : IsChain r s
inst✝ : IsTrans α r
a b c : α
mem1 : a ∈ s
mem2 : b ∈ s
mem3 : c ∈ s
z : α
mem4 : z ∈ s
H1 : r a z
H2 : r b z
⊢ ∃ z, ∃ (_ : z ∈ s), r a z ∧ r b z ∧ r c z

tactic: rcases directedOn_iff_directed.mpr (IsChain.directed hchain) z mem4 c mem3 with
  ⟨z', mem5, H3, H4⟩
state_before: case intro.intro.intro
α : Type u_1
β : Type u_2
r : α → α → Prop
c✝ c₁ c₂ c₃ s t : Set α
a✝ b✝ x y : α
inst✝¹ : IsRefl α r
hchain : IsChain r s
inst✝ : IsTrans α r
a b c : α
mem1 : a ∈ s
mem2 : b ∈ s
mem3 : c ∈ s
z : α
mem4 : z ∈ s
H1 : r a z
H2 : r b z
⊢ ∃ z, ∃ (_ : z ∈ s), r a z ∧ r b z ∧ r c z
state_after: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
r : α → α → Prop
c✝ c₁ c₂ c₃ s t : Set α
a✝ b✝ x y : α
inst✝¹ : IsRefl α r
hchain : IsChain r s
inst✝ : IsTrans α r
a b c : α
mem1 : a ∈ s
mem2 : b ∈ s
mem3 : c ∈ s
z : α
mem4 : z ∈ s
H1 : r a z
H2 : r b z
z' : α
mem5 : z' ∈ s
H3 : r z z'
H4 : r c z'
⊢ ∃ z, ∃ (_ : z ∈ s), r a z ∧ r b z ∧ r c z

tactic: exact ⟨z', mem5, _root_.trans H1 H3, _root_.trans H2 H3, H4⟩
state_before: case intro.intro.intro.intro.intro.intro
α : Type u_1
β : Type u_2
r : α → α → Prop
c✝ c₁ c₂ c₃ s t : Set α
a✝ b✝ x y : α
inst✝¹ : IsRefl α r
hchain : IsChain r s
inst✝ : IsTrans α r
a b c : α
mem1 : a ∈ s
mem2 : b ∈ s
mem3 : c ∈ s
z : α
mem4 : z ∈ s
H1 : r a z
H2 : r b z
z' : α
mem5 : z' ∈ s
H3 : r z z'
H4 : r c z'
⊢ ∃ z, ∃ (_ : z ∈ s), r a z ∧ r b z ∧ r c z
state_after: no goals
Theorem: Finset.mulEnergy_eq_zero_iff
File: Mathlib/Combinatorics/Additive/Energy.lean

tactic: simp [← (Nat.zero_le _).not_gt_iff_eq, not_and_or, imp_iff_or_not, or_comm]
state_before: α : Type u_1
inst✝¹ : DecidableEq α
inst✝ : Mul α
s s₁ s₂ t t₁ t₂ : Finset α
⊢ Eₘ[s, t] = 0 ↔ s = ∅ ∨ t = ∅
state_after: no goals
Theorem: FormalMultilinearSeries.leftInv_coeff_zero
File: Mathlib/Analysis/Analytic/Inverse.lean

tactic: rw [leftInv]
state_before: 𝕜 : Type u_1
inst✝⁴ : NontriviallyNormedField 𝕜
E : Type u_2
inst✝³ : NormedAddCommGroup E
inst✝² : NormedSpace 𝕜 E
F : Type u_3
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedSpace 𝕜 F
p : FormalMultilinearSeries 𝕜 E F
i : E ≃L[𝕜] F
⊢ p.leftInv i 0 = 0
state_after: no goals
Theorem: Beatty.hit_or_miss'
File: Mathlib/NumberTheory/Rayleigh.lean

tactic: cases le_or_gt (⌊(j + 1) / r⌋ * r) j
state_before: r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
⊢ j ∈ {x | ∃ k, beattySeq' r k = x} ∨ ∃ k, ↑k ≤ ↑j / r ∧ (↑j + 1) / r < ↑k + 1
state_after: case inl
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r ≤ ↑j
⊢ j ∈ {x | ∃ k, beattySeq' r k = x} ∨ ∃ k, ↑k ≤ ↑j / r ∧ (↑j + 1) / r < ↑k + 1

case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ j ∈ {x | ∃ k, beattySeq' r k = x} ∨ ∃ k, ↑k ≤ ↑j / r ∧ (↑j + 1) / r < ↑k + 1

tactic: exact Or.inr ⟨⌊(j + 1) / r⌋, (le_div_iff h).2 ‹_›, Int.lt_floor_add_one _⟩
state_before: case inl
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r ≤ ↑j
⊢ j ∈ {x | ∃ k, beattySeq' r k = x} ∨ ∃ k, ↑k ≤ ↑j / r ∧ (↑j + 1) / r < ↑k + 1
state_after: no goals

tactic: refine Or.inl ⟨⌊(j + 1) / r⌋, ?_⟩
state_before: case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ j ∈ {x | ∃ k, beattySeq' r k = x} ∨ ∃ k, ↑k ≤ ↑j / r ∧ (↑j + 1) / r < ↑k + 1
state_after: case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ beattySeq' r ⌊(↑j + 1) / r⌋ = j

tactic: rw [beattySeq', sub_eq_iff_eq_add, Int.ceil_eq_iff, Int.cast_add, Int.cast_one]
state_before: case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ beattySeq' r ⌊(↑j + 1) / r⌋ = j
state_after: case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ ↑j + 1 - 1 < ↑⌊(↑j + 1) / r⌋ * r ∧ ↑⌊(↑j + 1) / r⌋ * r ≤ ↑j + 1

tactic: constructor
state_before: case inr
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ ↑j + 1 - 1 < ↑⌊(↑j + 1) / r⌋ * r ∧ ↑⌊(↑j + 1) / r⌋ * r ≤ ↑j + 1
state_after: case inr.left
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ ↑j + 1 - 1 < ↑⌊(↑j + 1) / r⌋ * r

case inr.right
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ ↑⌊(↑j + 1) / r⌋ * r ≤ ↑j + 1

tactic: exact sub_nonneg.1 (Int.sub_floor_div_mul_nonneg (j + 1 : ℝ) h)
state_before: case inr.right
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ ↑⌊(↑j + 1) / r⌋ * r ≤ ↑j + 1
state_after: no goals

tactic: rwa [add_sub_cancel_right]
state_before: case inr.left
r s : ℝ
hrs : r.IsConjExponent s
j k : ℤ
h : r > 0
h✝ : ↑⌊(↑j + 1) / r⌋ * r > ↑j
⊢ ↑j + 1 - 1 < ↑⌊(↑j + 1) / r⌋ * r
state_after: no goals
Theorem: Submodule.map_comp
File: Mathlib/Algebra/Module/Submodule/Map.lean

tactic: simp only [← image_comp, map_coe, LinearMap.coe_comp, comp_apply]
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
inst✝¹⁴ : Semiring R
inst✝¹³ : Semiring R₂
inst✝¹² : Semiring R₃
inst✝¹¹ : AddCommMonoid M
inst✝¹⁰ : AddCommMonoid M₂
inst✝⁹ : AddCommMonoid M₃
inst✝⁸ : Module R M
inst✝⁷ : Module R₂ M₂
inst✝⁶ : Module R₃ M₃
σ₁₂ : R →+* R₂
σ₂₃ : R₂ →+* R₃
σ₁₃ : R →+* R₃
inst✝⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
p✝ p' : Submodule R M
q q' : Submodule R₂ M₂
x : M
inst✝⁴ : RingHomSurjective σ₁₂
F : Type u_9
inst✝³ : FunLike F M M₂
inst✝² : SemilinearMapClass F σ₁₂ M M₂
inst✝¹ : RingHomSurjective σ₂₃
inst✝ : RingHomSurjective σ₁₃
f : M →ₛₗ[σ₁₂] M₂
g : M₂ →ₛₗ[σ₂₃] M₃
p : Submodule R M
⊢ ↑(map (g.comp f) p) = ↑(map g (map f p))
state_after: no goals
Theorem: Finset.hasProd
File: Mathlib/Topology/Algebra/InfiniteSum/Defs.lean

tactic: rw [← prod_attach]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f✝ g : β → α
a b : α
s✝ s : Finset β
f : β → α
⊢ HasProd (f ∘ Subtype.val) (∏ b ∈ s, f b)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f✝ g : β → α
a b : α
s✝ s : Finset β
f : β → α
⊢ HasProd (f ∘ Subtype.val) (∏ x ∈ s.attach, f ↑x)

tactic: exact hasProd_fintype _
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
inst✝¹ : CommMonoid α
inst✝ : TopologicalSpace α
f✝ g : β → α
a b : α
s✝ s : Finset β
f : β → α
⊢ HasProd (f ∘ Subtype.val) (∏ x ∈ s.attach, f ↑x)
state_after: no goals
Theorem: Set.compl_range_subset_kernImage
File: Mathlib/Data/Set/Lattice.lean

tactic: rw [← kernImage_empty]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
s : Set α
⊢ (range f)ᶜ ⊆ kernImage f s
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
s : Set α
⊢ kernImage f ∅ ⊆ kernImage f s

tactic: exact kernImage_mono (empty_subset _)
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
ι' : Sort u_5
ι₂ : Sort u_6
κ : ι → Sort u_7
κ₁ : ι → Sort u_8
κ₂ : ι → Sort u_9
κ' : ι' → Sort u_10
f : α → β
s : Set α
⊢ kernImage f ∅ ⊆ kernImage f s
state_after: no goals
Theorem: List.length_lookmap
File: Mathlib/Data/List/Basic.lean

tactic: rw [← length_map, lookmap_map_eq _ fun _ => (), length_map]
state_before: ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → Option α
l : List α
⊢ (lookmap f l).length = l.length
state_after: case h
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → Option α
l : List α
⊢ ∀ (a b : α), b ∈ f a → () = ()

tactic: simp
state_before: case h
ι : Type u_1
α : Type u
β : Type v
γ : Type w
l₁ l₂ : List α
f : α → Option α
l : List α
⊢ ∀ (a b : α), b ∈ f a → () = ()
state_after: no goals
Theorem: LucasLehmer.sMod_mod
File: Mathlib/NumberTheory/LucasLehmer.lean

tactic: cases i <;> simp [sMod]
state_before: p i : ℕ
⊢ sMod p i % (2 ^ p - 1) = sMod p i
state_after: no goals
Theorem: Real.toNNReal_eq_zero
File: Mathlib/Data/NNReal/Basic.lean

tactic: simpa [-toNNReal_pos] using not_iff_not.2 (@toNNReal_pos r)
state_before: r : ℝ
⊢ r.toNNReal = 0 ↔ r ≤ 0
state_after: no goals
Theorem: intrinsicClosure_mono
File: Mathlib/Analysis/Convex/Intrinsic.lean

tactic: refine image_subset_iff.2 fun x hx => ?_
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x : P
h : s ⊆ t
⊢ intrinsicClosure 𝕜 s ⊆ intrinsicClosure 𝕜 t
state_after: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ x ∈ Subtype.val ⁻¹' intrinsicClosure 𝕜 t

tactic: refine ⟨Set.inclusion (affineSpan_mono _ h) x, ?_, rfl⟩
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ x ∈ Subtype.val ⁻¹' intrinsicClosure 𝕜 t
state_after: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ Set.inclusion ⋯ x ∈ closure (Subtype.val ⁻¹' t)

tactic: refine (continuous_inclusion (affineSpan_mono _ h)).closure_preimage_subset _ (closure_mono ?_ hx)
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ Set.inclusion ⋯ x ∈ closure (Subtype.val ⁻¹' t)
state_after: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ Subtype.val ⁻¹' s ⊆ Set.inclusion ⋯ ⁻¹' (Subtype.val ⁻¹' t)

tactic: exact fun y hy => h hy
state_before: 𝕜 : Type u_1
V : Type u_2
W : Type u_3
Q : Type u_4
P : Type u_5
inst✝⁴ : Ring 𝕜
inst✝³ : AddCommGroup V
inst✝² : Module 𝕜 V
inst✝¹ : TopologicalSpace P
inst✝ : AddTorsor V P
s t : Set P
x✝ : P
h : s ⊆ t
x : ↥(affineSpan 𝕜 s)
hx : x ∈ closure (Subtype.val ⁻¹' s)
⊢ Subtype.val ⁻¹' s ⊆ Set.inclusion ⋯ ⁻¹' (Subtype.val ⁻¹' t)
state_after: no goals
Theorem: UpperSet.map_refl
File: Mathlib/Order/UpperLower/Basic.lean

tactic: ext
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α ≃o β
s t : UpperSet α
a : α
b : β
⊢ map (OrderIso.refl α) = OrderIso.refl (UpperSet α)
state_after: case h.h.a.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α ≃o β
s t : UpperSet α
a : α
b : β
x✝¹ : UpperSet α
x✝ : α
⊢ x✝ ∈ ↑((map (OrderIso.refl α)) x✝¹) ↔ x✝ ∈ ↑((OrderIso.refl (UpperSet α)) x✝¹)

tactic: simp
state_before: case h.h.a.h
α : Type u_1
β : Type u_2
γ : Type u_3
ι : Sort u_4
κ : ι → Sort u_5
inst✝² : Preorder α
inst✝¹ : Preorder β
inst✝ : Preorder γ
f : α ≃o β
s t : UpperSet α
a : α
b : β
x✝¹ : UpperSet α
x✝ : α
⊢ x✝ ∈ ↑((map (OrderIso.refl α)) x✝¹) ↔ x✝ ∈ ↑((OrderIso.refl (UpperSet α)) x✝¹)
state_after: no goals
Theorem: Int.clog_of_left_le_one
File: Mathlib/Data/Int/Log.lean

tactic: rw [← neg_log_inv_eq_clog, log_of_left_le_one hb, neg_zero]
state_before: R : Type u_1
inst✝¹ : LinearOrderedSemifield R
inst✝ : FloorSemiring R
b : ℕ
hb : b ≤ 1
r : R
⊢ clog b r = 0
state_after: no goals