1337xyz1337xyz/leandojo-benchmark4-v10 huggingface dataset:
Theorem: PiTensorProduct.mul_tprod_tprod
File: Mathlib/RingTheory/PiTensorProduct.lean

tactic: simp only [mul, piTensorHomMap₂_tprod_tprod_tprod, LinearMap.mul_apply']
state_before: ι : Type u_1
R' : Type u_2
R : Type u_3
A : ι → Type u_4
inst✝⁴ : CommSemiring R
inst✝³ : (i : ι) → NonUnitalNonAssocSemiring (A i)
inst✝² : (i : ι) → Module R (A i)
inst✝¹ : ∀ (i : ι), SMulCommClass R (A i) (A i)
inst✝ : ∀ (i : ι), IsScalarTower R (A i) (A i)
x y : (i : ι) → A i
⊢ (mul ((tprod R) x)) ((tprod R) y) = (tprod R) (x * y)
state_after: ι : Type u_1
R' : Type u_2
R : Type u_3
A : ι → Type u_4
inst✝⁴ : CommSemiring R
inst✝³ : (i : ι) → NonUnitalNonAssocSemiring (A i)
inst✝² : (i : ι) → Module R (A i)
inst✝¹ : ∀ (i : ι), SMulCommClass R (A i) (A i)
inst✝ : ∀ (i : ι), IsScalarTower R (A i) (A i)
x y : (i : ι) → A i
⊢ (⨂ₜ[R] (i : ι), x i * y i) = (tprod R) (x * y)

tactic: rfl
state_before: ι : Type u_1
R' : Type u_2
R : Type u_3
A : ι → Type u_4
inst✝⁴ : CommSemiring R
inst✝³ : (i : ι) → NonUnitalNonAssocSemiring (A i)
inst✝² : (i : ι) → Module R (A i)
inst✝¹ : ∀ (i : ι), SMulCommClass R (A i) (A i)
inst✝ : ∀ (i : ι), IsScalarTower R (A i) (A i)
x y : (i : ι) → A i
⊢ (⨂ₜ[R] (i : ι), x i * y i) = (tprod R) (x * y)
state_after: no goals
Theorem: RatFunc.ofFractionRing_algebraMap
File: Mathlib/FieldTheory/RatFunc/Basic.lean

tactic: rw [← mk_one, mk_one']
state_before: K : Type u
inst✝¹ : CommRing K
inst✝ : IsDomain K
x : K[X]
⊢ { toFractionRing := (algebraMap K[X] (FractionRing K[X])) x } = (algebraMap K[X] (RatFunc K)) x
state_after: no goals
Theorem: padicNorm.nat_eq_one_iff
File: Mathlib/NumberTheory/Padics/PadicNorm.lean

tactic: rw [← Int.natCast_dvd_natCast, ← int_eq_one_iff, Int.cast_natCast]
state_before: p : ℕ
hp : Fact (Nat.Prime p)
m : ℕ
⊢ padicNorm p ↑m = 1 ↔ ¬p ∣ m
state_after: no goals
Theorem: String.Iterator.Valid.next
File: .lake/packages/batteries/Batteries/Data/String/Lemmas.lean

tactic: let ⟨l, r, h⟩ := h.validFor
state_before: x✝ : Iterator
h : x✝.Valid
hn : x✝.hasNext = true
⊢ x✝.next.Valid
state_after: x✝ : Iterator
h✝ : x✝.Valid
hn : x✝.hasNext = true
l r : List Char
h : ValidFor l r x✝
⊢ x✝.next.Valid

tactic: obtain ⟨c, r, rfl⟩ := List.exists_cons_of_ne_nil (h.hasNext.1 hn)
state_before: x✝ : Iterator
h✝ : x✝.Valid
hn : x✝.hasNext = true
l r : List Char
h : ValidFor l r x✝
⊢ x✝.next.Valid
state_after: case intro.intro
x✝ : Iterator
h✝ : x✝.Valid
hn : x✝.hasNext = true
l : List Char
c : Char
r : List Char
h : ValidFor l (c :: r) x✝
⊢ x✝.next.Valid

tactic: exact h.next.valid
state_before: case intro.intro
x✝ : Iterator
h✝ : x✝.Valid
hn : x✝.hasNext = true
l : List Char
c : Char
r : List Char
h : ValidFor l (c :: r) x✝
⊢ x✝.next.Valid
state_after: no goals
Theorem: MonoidAlgebra.lift_of
File: Mathlib/Algebra/MonoidAlgebra/Basic.lean

tactic: simp
state_before: k : Type u₁
G : Type u₂
H : Type u_1
R : Type u_2
inst✝⁶ : CommSemiring k
inst✝⁵ : Monoid G
inst✝⁴ : Monoid H
A : Type u₃
inst✝³ : Semiring A
inst✝² : Algebra k A
B : Type u_3
inst✝¹ : Semiring B
inst✝ : Algebra k B
F : G →* A
x : G
⊢ ((lift k G A) F) ((of k G) x) = F x
state_after: no goals
Theorem: Set.sInter_eq_empty_iff
File: Mathlib/Data/Set/Lattice.lean

tactic: simp [Set.eq_empty_iff_forall_not_mem]
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
c : Set (Set α)
⊢ ⋂₀ c = ∅ ↔ ∀ (a : α), ∃ b ∈ c, a ∉ b
state_after: no goals
Theorem: CategoryTheory.Limits.Sigma.map_comp_map'
File: Mathlib/CategoryTheory/Limits/Shapes/Products.lean

tactic: ext
state_before: β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝³ : Category.{v, u} C
f g : α → C
h : β → C
inst✝² : HasCoproduct f
inst✝¹ : HasCoproduct g
inst✝ : HasCoproduct h
p : α → β
q : (a : α) → f a ⟶ g a
q' : (a : α) → g a ⟶ h (p a)
⊢ map q ≫ map' p q' = map' p fun a => q a ≫ q' a
state_after: case h
β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝³ : Category.{v, u} C
f g : α → C
h : β → C
inst✝² : HasCoproduct f
inst✝¹ : HasCoproduct g
inst✝ : HasCoproduct h
p : α → β
q : (a : α) → f a ⟶ g a
q' : (a : α) → g a ⟶ h (p a)
b✝ : α
⊢ ι f b✝ ≫ map q ≫ map' p q' = ι f b✝ ≫ map' p fun a => q a ≫ q' a

tactic: simp
state_before: case h
β : Type w
α : Type w₂
γ : Type w₃
C : Type u
inst✝³ : Category.{v, u} C
f g : α → C
h : β → C
inst✝² : HasCoproduct f
inst✝¹ : HasCoproduct g
inst✝ : HasCoproduct h
p : α → β
q : (a : α) → f a ⟶ g a
q' : (a : α) → g a ⟶ h (p a)
b✝ : α
⊢ ι f b✝ ≫ map q ≫ map' p q' = ι f b✝ ≫ map' p fun a => q a ≫ q' a
state_after: no goals
Theorem: Ordinal.principal_add_iff_add_lt_ne_self
File: Mathlib/SetTheory/Ordinal/Principal.lean

tactic: by_contra! ha
state_before: a : Ordinal.{u_1}
H : ∀ ⦃b c : Ordinal.{u_1}⦄, b < a → c < a → b + c ≠ a
⊢ Principal (fun x x_1 => x + x_1) a
state_after: a : Ordinal.{u_1}
H : ∀ ⦃b c : Ordinal.{u_1}⦄, b < a → c < a → b + c ≠ a
ha : ¬Principal (fun x x_1 => x + x_1) a
⊢ False

tactic: rcases exists_lt_add_of_not_principal_add ha with ⟨b, c, hb, hc, rfl⟩
state_before: a : Ordinal.{u_1}
H : ∀ ⦃b c : Ordinal.{u_1}⦄, b < a → c < a → b + c ≠ a
ha : ¬Principal (fun x x_1 => x + x_1) a
⊢ False
state_after: case intro.intro.intro.intro
b c : Ordinal.{u_1}
H : ∀ ⦃b_1 c_1 : Ordinal.{u_1}⦄, b_1 < b + c → c_1 < b + c → b_1 + c_1 ≠ b + c
ha : ¬Principal (fun x x_1 => x + x_1) (b + c)
hb : b < b + c
hc : c < b + c
⊢ False

tactic: exact (H hb hc).irrefl
state_before: case intro.intro.intro.intro
b c : Ordinal.{u_1}
H : ∀ ⦃b_1 c_1 : Ordinal.{u_1}⦄, b_1 < b + c → c_1 < b + c → b_1 + c_1 ≠ b + c
ha : ¬Principal (fun x x_1 => x + x_1) (b + c)
hb : b < b + c
hc : c < b + c
⊢ False
state_after: no goals
Theorem: Finset.monotone_iff_forall_le_insert
File: Mathlib/Data/Finset/Interval.lean

tactic: simp [monotone_iff_forall_le_cons]
state_before: α : Type u_1
β : Type u_2
inst✝¹ : Preorder β
s t : Finset α
f : Finset α → β
inst✝ : DecidableEq α
⊢ Monotone f ↔ ∀ (s : Finset α) ⦃a : α⦄, a ∉ s → f s ≤ f (insert a s)
state_after: no goals
Theorem: ModuleCat.homology'_ext
File: Mathlib/Algebra/Homology/ModuleCat.lean

tactic: refine Concrete.cokernel_funext fun n => ?_
state_before: R : Type v
inst✝ : Ring R
ι : Type u_1
c : ComplexShape ι
C D : HomologicalComplex (ModuleCat R) c
L M N K : ModuleCat R
f : L ⟶ M
g : M ⟶ N
w✝ : f ≫ g = 0
h k : _root_.homology' f g w✝ ⟶ K
w :
  ∀ (x : ↥(LinearMap.ker g)),
    h ((cokernel.π (imageToKernel f g w✝)) (toKernelSubobject x)) =
      k ((cokernel.π (imageToKernel f g w✝)) (toKernelSubobject x))
⊢ h = k
state_after: R : Type v
inst✝ : Ring R
ι : Type u_1
c : ComplexShape ι
C D : HomologicalComplex (ModuleCat R) c
L M N K : ModuleCat R
f : L ⟶ M
g : M ⟶ N
w✝ : f ≫ g = 0
h k : _root_.homology' f g w✝ ⟶ K
w :
  ∀ (x : ↥(LinearMap.ker g)),
    h ((cokernel.π (imageToKernel f g w✝)) (toKernelSubobject x)) =
      k ((cokernel.π (imageToKernel f g w✝)) (toKernelSubobject x))
n : (CategoryTheory.forget (ModuleCat R)).obj (Subobject.underlying.obj (kernelSubobject g))
⊢ h ((cokernel.π (imageToKernel f g w✝)) n) = k ((cokernel.π (imageToKernel f g w✝)) n)

tactic: obtain ⟨n, rfl⟩ := (kernelSubobjectIso g ≪≫
  ModuleCat.kernelIsoKer g).toLinearEquiv.toEquiv.symm.surjective n
state_before: R : Type v
inst✝ : Ring R
ι : Type u_1
c : ComplexShape ι
C D : HomologicalComplex (ModuleCat R) c
L M N K : ModuleCat R
f : L ⟶ M
g : M ⟶ N
w✝ : f ≫ g = 0
h k : _root_.homology' f g w✝ ⟶ K
w :
  ∀ (x : ↥(LinearMap.ker g)),
    h ((cokernel.π (imageToKernel f g w✝)) (toKernelSubobject x)) =
      k ((cokernel.π (imageToKernel f g w✝)) (toKernelSubobject x))
n : (CategoryTheory.forget (ModuleCat R)).obj (Subobject.underlying.obj (kernelSubobject g))
⊢ h ((cokernel.π (imageToKernel f g w✝)) n) = k ((cokernel.π (imageToKernel f g w✝)) n)
state_after: case intro
R : Type v
inst✝ : Ring R
ι : Type u_1
c : ComplexShape ι
C D : HomologicalComplex (ModuleCat R) c
L M N K : ModuleCat R
f : L ⟶ M
g : M ⟶ N
w✝ : f ≫ g = 0
h k : _root_.homology' f g w✝ ⟶ K
w :
  ∀ (x : ↥(LinearMap.ker g)),
    h ((cokernel.π (imageToKernel f g w✝)) (toKernelSubobject x)) =
      k ((cokernel.π (imageToKernel f g w✝)) (toKernelSubobject x))
n : ↑(of R ↥(LinearMap.ker g))
⊢ h ((cokernel.π (imageToKernel f g w✝)) ((kernelSubobjectIso g ≪≫ kernelIsoKer g).toLinearEquiv.toEquiv.symm n)) =
    k ((cokernel.π (imageToKernel f g w✝)) ((kernelSubobjectIso g ≪≫ kernelIsoKer g).toLinearEquiv.toEquiv.symm n))

tactic: exact w n
state_before: case intro
R : Type v
inst✝ : Ring R
ι : Type u_1
c : ComplexShape ι
C D : HomologicalComplex (ModuleCat R) c
L M N K : ModuleCat R
f : L ⟶ M
g : M ⟶ N
w✝ : f ≫ g = 0
h k : _root_.homology' f g w✝ ⟶ K
w :
  ∀ (x : ↥(LinearMap.ker g)),
    h ((cokernel.π (imageToKernel f g w✝)) (toKernelSubobject x)) =
      k ((cokernel.π (imageToKernel f g w✝)) (toKernelSubobject x))
n : ↑(of R ↥(LinearMap.ker g))
⊢ h ((cokernel.π (imageToKernel f g w✝)) ((kernelSubobjectIso g ≪≫ kernelIsoKer g).toLinearEquiv.toEquiv.symm n)) =
    k ((cokernel.π (imageToKernel f g w✝)) ((kernelSubobjectIso g ≪≫ kernelIsoKer g).toLinearEquiv.toEquiv.symm n))
state_after: no goals
Theorem: MvPolynomial.isSymmetric_rename
File: Mathlib/RingTheory/MvPolynomial/Symmetric.lean

tactic: simpa using (IsSymmetric.rename (R := R) h e.symm)
state_before: σ : Type u_1
R : Type u_2
τ : Type u_3
S : Type u_4
inst✝¹ : CommSemiring R
inst✝ : CommSemiring S
φ ψ : MvPolynomial σ R
e : σ ≃ τ
h : ((rename ⇑e) φ).IsSymmetric
⊢ φ.IsSymmetric
state_after: no goals
Theorem: TopologicalSpace.Opens.IsBasis.isCompact_open_iff_eq_finite_iUnion
File: Mathlib/Topology/Sets/Opens.lean

tactic: apply isCompact_open_iff_eq_finite_iUnion_of_isTopologicalBasis fun i : ι => (b i).1
state_before: ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_5
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ IsCompact U ∧ IsOpen U ↔ ∃ s, s.Finite ∧ U = ⋃ i ∈ s, ↑(b i)
state_after: case hb
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_5
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ IsTopologicalBasis (range fun i => (b i).carrier)

case hb'
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_5
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ ∀ (i : ι), IsCompact (b i).carrier

tactic: convert (config := {transparency := .default}) hb
state_before: case hb
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_5
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ IsTopologicalBasis (range fun i => (b i).carrier)
state_after: case h.e'_3
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_5
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ (range fun i => (b i).carrier) = SetLike.coe '' range b

tactic: ext
state_before: case h.e'_3
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_5
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ (range fun i => (b i).carrier) = SetLike.coe '' range b
state_after: case h.e'_3.h
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_5
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U x✝ : Set α
⊢ (x✝ ∈ range fun i => (b i).carrier) ↔ x✝ ∈ SetLike.coe '' range b

tactic: simp
state_before: case h.e'_3.h
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_5
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U x✝ : Set α
⊢ (x✝ ∈ range fun i => (b i).carrier) ↔ x✝ ∈ SetLike.coe '' range b
state_after: no goals

tactic: exact hb'
state_before: case hb'
ι✝ : Type u_1
α : Type u_2
β : Type u_3
γ : Type u_4
inst✝² : TopologicalSpace α
inst✝¹ : TopologicalSpace β
inst✝ : TopologicalSpace γ
ι : Type u_5
b : ι → Opens α
hb : IsBasis (range b)
hb' : ∀ (i : ι), IsCompact ↑(b i)
U : Set α
⊢ ∀ (i : ι), IsCompact (b i).carrier
state_after: no goals
Theorem: preStoneCechCompat
File: Mathlib/Topology/StoneCech.lean

tactic: replace hF := (map_mono hF).trans hg.continuousAt
state_before: α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
F G : Ultrafilter α
x : α
hF : ↑F ≤ 𝓝 x
hG : ↑G ≤ 𝓝 x
⊢ Ultrafilter.extend g F = Ultrafilter.extend g G
state_after: α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
F G : Ultrafilter α
x : α
hG : ↑G ≤ 𝓝 x
hF : map g ↑F ≤ 𝓝 (g x)
⊢ Ultrafilter.extend g F = Ultrafilter.extend g G

tactic: replace hG := (map_mono hG).trans hg.continuousAt
state_before: α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
F G : Ultrafilter α
x : α
hG : ↑G ≤ 𝓝 x
hF : map g ↑F ≤ 𝓝 (g x)
⊢ Ultrafilter.extend g F = Ultrafilter.extend g G
state_after: α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
F G : Ultrafilter α
x : α
hF : map g ↑F ≤ 𝓝 (g x)
hG : map g ↑G ≤ 𝓝 (g x)
⊢ Ultrafilter.extend g F = Ultrafilter.extend g G

tactic: rwa [show Ultrafilter.extend g G = g x by rwa [ultrafilter_extend_eq_iff, G.coe_map],
     ultrafilter_extend_eq_iff, F.coe_map]
state_before: α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
F G : Ultrafilter α
x : α
hF : map g ↑F ≤ 𝓝 (g x)
hG : map g ↑G ≤ 𝓝 (g x)
⊢ Ultrafilter.extend g F = Ultrafilter.extend g G
state_after: no goals

tactic: rwa [ultrafilter_extend_eq_iff, G.coe_map]
state_before: α : Type u
inst✝³ : TopologicalSpace α
β : Type v
inst✝² : TopologicalSpace β
inst✝¹ : T2Space β
inst✝ : CompactSpace β
g : α → β
hg : Continuous g
F G : Ultrafilter α
x : α
hF : map g ↑F ≤ 𝓝 (g x)
hG : map g ↑G ≤ 𝓝 (g x)
⊢ Ultrafilter.extend g G = g x
state_after: no goals
Theorem: List.join_reverse
File: Mathlib/Data/List/Join.lean

tactic: simpa [reverse_reverse, map_reverse] using congr_arg List.reverse (reverse_join L.reverse)
state_before: α : Type u_1
β : Type u_2
L : List (List α)
⊢ L.reverse.join = (map reverse L).join.reverse
state_after: no goals
Theorem: Mathlib.Tactic.Ring.add_pf_zero_add
File: Mathlib/Tactic/Ring/Basic.lean

tactic: simp
state_before: u : Lean.Level
R : Type u_1
α : Q(Type u)
sα : Q(CommSemiring «$α»)
inst✝ : CommSemiring R
b : R
⊢ 0 + b = b
state_after: no goals
Theorem: PerfectRing.liftAux_id_apply
File: Mathlib/FieldTheory/IsPerfectClosure.lean

tactic: have := RingHom.id_apply _ ▸ Classical.choose_spec (lift_aux (RingHom.id K) p x)
state_before: K : Type u_1
L : Type u_2
M : Type u_3
N : Type u_4
inst✝⁷ : CommSemiring K
inst✝⁶ : CommSemiring L
inst✝⁵ : CommSemiring M
i : K →+* L
j : K →+* M
f : L →+* M
p : ℕ
inst✝⁴ : ExpChar K p
inst✝³ : ExpChar L p
inst✝² : ExpChar M p
inst✝¹ : PerfectRing M p
inst✝ : IsPRadical i p
x : K
⊢ liftAux (RingHom.id K) j p x = j x
state_after: K : Type u_1
L : Type u_2
M : Type u_3
N : Type u_4
inst✝⁷ : CommSemiring K
inst✝⁶ : CommSemiring L
inst✝⁵ : CommSemiring M
i : K →+* L
j : K →+* M
f : L →+* M
p : ℕ
inst✝⁴ : ExpChar K p
inst✝³ : ExpChar L p
inst✝² : ExpChar M p
inst✝¹ : PerfectRing M p
inst✝ : IsPRadical i p
x : K
this : (Classical.choose ⋯).2 = x ^ p ^ (Classical.choose ⋯).1
⊢ liftAux (RingHom.id K) j p x = j x

tactic: rw [liftAux, this, map_pow, ← iterateFrobenius_def, ← iterateFrobeniusEquiv_apply,
  RingEquiv.symm_apply_apply]
state_before: K : Type u_1
L : Type u_2
M : Type u_3
N : Type u_4
inst✝⁷ : CommSemiring K
inst✝⁶ : CommSemiring L
inst✝⁵ : CommSemiring M
i : K →+* L
j : K →+* M
f : L →+* M
p : ℕ
inst✝⁴ : ExpChar K p
inst✝³ : ExpChar L p
inst✝² : ExpChar M p
inst✝¹ : PerfectRing M p
inst✝ : IsPRadical i p
x : K
this : (Classical.choose ⋯).2 = x ^ p ^ (Classical.choose ⋯).1
⊢ liftAux (RingHom.id K) j p x = j x
state_after: no goals
Theorem: IsPreconnected.intermediate_value₂_eventually₁
File: Mathlib/Topology/Order/IntermediateValue.lean

tactic: rw [continuousOn_iff_continuous_restrict] at hf hg
state_before: X : Type u
α : Type v
inst✝⁴ : TopologicalSpace X
inst✝³ : LinearOrder α
inst✝² : TopologicalSpace α
inst✝¹ : OrderClosedTopology α
s : Set X
hs : IsPreconnected s
a : X
l : Filter X
ha : a ∈ s
inst✝ : l.NeBot
hl : l ≤ 𝓟 s
f g : X → α
hf : ContinuousOn f s
hg : ContinuousOn g s
ha' : f a ≤ g a
he : g ≤ᶠ[l] f
⊢ ∃ x ∈ s, f x = g x
state_after: X : Type u
α : Type v
inst✝⁴ : TopologicalSpace X
inst✝³ : LinearOrder α
inst✝² : TopologicalSpace α
inst✝¹ : OrderClosedTopology α
s : Set X
hs : IsPreconnected s
a : X
l : Filter X
ha : a ∈ s
inst✝ : l.NeBot
hl : l ≤ 𝓟 s
f g : X → α
hf : Continuous (s.restrict f)
hg : Continuous (s.restrict g)
ha' : f a ≤ g a
he : g ≤ᶠ[l] f
⊢ ∃ x ∈ s, f x = g x

tactic: obtain ⟨b, h⟩ :=
  @intermediate_value_univ₂_eventually₁ _ _ _ _ _ _ (Subtype.preconnectedSpace hs) ⟨a, ha⟩ _
    (comap_coe_neBot_of_le_principal hl) _ _ hf hg ha' (he.comap _)
state_before: X : Type u
α : Type v
inst✝⁴ : TopologicalSpace X
inst✝³ : LinearOrder α
inst✝² : TopologicalSpace α
inst✝¹ : OrderClosedTopology α
s : Set X
hs : IsPreconnected s
a : X
l : Filter X
ha : a ∈ s
inst✝ : l.NeBot
hl : l ≤ 𝓟 s
f g : X → α
hf : Continuous (s.restrict f)
hg : Continuous (s.restrict g)
ha' : f a ≤ g a
he : g ≤ᶠ[l] f
⊢ ∃ x ∈ s, f x = g x
state_after: case intro
X : Type u
α : Type v
inst✝⁴ : TopologicalSpace X
inst✝³ : LinearOrder α
inst✝² : TopologicalSpace α
inst✝¹ : OrderClosedTopology α
s : Set X
hs : IsPreconnected s
a : X
l : Filter X
ha : a ∈ s
inst✝ : l.NeBot
hl : l ≤ 𝓟 s
f g : X → α
hf : Continuous (s.restrict f)
hg : Continuous (s.restrict g)
ha' : f a ≤ g a
he : g ≤ᶠ[l] f
b : ↑s
h : s.restrict f b = s.restrict g b
⊢ ∃ x ∈ s, f x = g x

tactic: exact ⟨b, b.prop, h⟩
state_before: case intro
X : Type u
α : Type v
inst✝⁴ : TopologicalSpace X
inst✝³ : LinearOrder α
inst✝² : TopologicalSpace α
inst✝¹ : OrderClosedTopology α
s : Set X
hs : IsPreconnected s
a : X
l : Filter X
ha : a ∈ s
inst✝ : l.NeBot
hl : l ≤ 𝓟 s
f g : X → α
hf : Continuous (s.restrict f)
hg : Continuous (s.restrict g)
ha' : f a ≤ g a
he : g ≤ᶠ[l] f
b : ↑s
h : s.restrict f b = s.restrict g b
⊢ ∃ x ∈ s, f x = g x
state_after: no goals
Theorem: DFinsupp.comapDomain'_zero
File: Mathlib/Data/DFinsupp/Basic.lean

tactic: ext
state_before: ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
κ : Type u_1
inst✝ : (i : ι) → Zero (β i)
h : κ → ι
h' : ι → κ
hh' : Function.LeftInverse h' h
⊢ comapDomain' h hh' 0 = 0
state_after: case h
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
κ : Type u_1
inst✝ : (i : ι) → Zero (β i)
h : κ → ι
h' : ι → κ
hh' : Function.LeftInverse h' h
i✝ : κ
⊢ (comapDomain' h hh' 0) i✝ = 0 i✝

tactic: rw [zero_apply, comapDomain'_apply, zero_apply]
state_before: case h
ι : Type u
γ : Type w
β : ι → Type v
β₁ : ι → Type v₁
β₂ : ι → Type v₂
inst✝¹ : DecidableEq ι
κ : Type u_1
inst✝ : (i : ι) → Zero (β i)
h : κ → ι
h' : ι → κ
hh' : Function.LeftInverse h' h
i✝ : κ
⊢ (comapDomain' h hh' 0) i✝ = 0 i✝
state_after: no goals
Theorem: NonUnitalStarAlgHom.ext_continuousMap
File: Mathlib/Topology/ContinuousFunction/NonUnitalFunctionalCalculus.lean

tactic: simp
state_before: R : Type u_1
A : Type u_2
p : A → Prop
inst✝¹³ : CommSemiring R
inst✝¹² : Nontrivial R
inst✝¹¹ : StarRing R
inst✝¹⁰ : MetricSpace R
inst✝⁹ : TopologicalSemiring R
inst✝⁸ : ContinuousStar R
inst✝⁷ : NonUnitalRing A
inst✝⁶ : StarRing A
inst✝⁵ : TopologicalSpace A
inst✝⁴ : Module R A
inst✝³ : IsScalarTower R A A
inst✝² : SMulCommClass R A A
inst✝¹ : NonUnitalContinuousFunctionalCalculus R p
inst✝ : UniqueNonUnitalContinuousFunctionalCalculus R A
a : A
φ ψ : C(↑(σₙ R a), R)₀ →⋆ₙₐ[R] A
hφ : Continuous ⇑φ
hψ : Continuous ⇑ψ
h :
  φ { toContinuousMap := ContinuousMap.restrict (σₙ R a) (ContinuousMap.id R), map_zero' := ⋯ } =
    ψ { toContinuousMap := ContinuousMap.restrict (σₙ R a) (ContinuousMap.id R), map_zero' := ⋯ }
this : CompactSpace ↑(σₙ R a)
⊢ ↑0 = 0
state_after: no goals
Theorem: SimpleGraph.is3Clique_triple_iff
File: Mathlib/Combinatorics/SimpleGraph/Clique.lean

tactic: simp only [isNClique_iff, isClique_iff, Set.pairwise_insert_of_symmetric G.symm, coe_insert]
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq α
⊢ G.IsNClique 3 {a, b, c} ↔ G.Adj a b ∧ G.Adj a c ∧ G.Adj b c
state_after: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq α
⊢ (((↑{c}).Pairwise G.Adj ∧ ∀ b_1 ∈ ↑{c}, b ≠ b_1 → G.Adj b b_1) ∧ ∀ b_1 ∈ insert b ↑{c}, a ≠ b_1 → G.Adj a b_1) ∧
      {a, b, c}.card = 3 ↔
    G.Adj a b ∧ G.Adj a c ∧ G.Adj b c

tactic: by_cases hab : a = b <;> by_cases hbc : b = c <;> by_cases hac : a = c <;> subst_vars <;>
  simp [G.ne_of_adj, and_rotate, *]
state_before: α : Type u_1
β : Type u_2
G H : SimpleGraph α
n : ℕ
s : Finset α
a b c : α
inst✝ : DecidableEq α
⊢ (((↑{c}).Pairwise G.Adj ∧ ∀ b_1 ∈ ↑{c}, b ≠ b_1 → G.Adj b b_1) ∧ ∀ b_1 ∈ insert b ↑{c}, a ≠ b_1 → G.Adj a b_1) ∧
      {a, b, c}.card = 3 ↔
    G.Adj a b ∧ G.Adj a c ∧ G.Adj b c
state_after: no goals
Theorem: BooleanAlgebra.eq_iff_atom_le_iff
File: Mathlib/Order/Atoms.lean

tactic: refine ⟨fun h => h ▸ by simp, fun h => ?_⟩
state_before: ι : Sort u_1
α✝ : Type u_2
β : Type u_3
inst✝² : PartialOrder α✝
α : Type u_4
inst✝¹ : BooleanAlgebra α
inst✝ : IsAtomic α
x y : α
⊢ x = y ↔ ∀ (a : α), IsAtom a → (a ≤ x ↔ a ≤ y)
state_after: ι : Sort u_1
α✝ : Type u_2
β : Type u_3
inst✝² : PartialOrder α✝
α : Type u_4
inst✝¹ : BooleanAlgebra α
inst✝ : IsAtomic α
x y : α
h : ∀ (a : α), IsAtom a → (a ≤ x ↔ a ≤ y)
⊢ x = y

tactic: exact le_antisymm (le_iff_atom_le_imp.2 fun a ha hx => (h a ha).1 hx)
  (le_iff_atom_le_imp.2 fun a ha hy => (h a ha).2 hy)
state_before: ι : Sort u_1
α✝ : Type u_2
β : Type u_3
inst✝² : PartialOrder α✝
α : Type u_4
inst✝¹ : BooleanAlgebra α
inst✝ : IsAtomic α
x y : α
h : ∀ (a : α), IsAtom a → (a ≤ x ↔ a ≤ y)
⊢ x = y
state_after: no goals

tactic: simp
state_before: ι : Sort u_1
α✝ : Type u_2
β : Type u_3
inst✝² : PartialOrder α✝
α : Type u_4
inst✝¹ : BooleanAlgebra α
inst✝ : IsAtomic α
x y : α
h : x = y
⊢ ∀ (a : α), IsAtom a → (a ≤ x ↔ a ≤ x)
state_after: no goals