tasksource/leandojo huggingface dataset:
Theorem: Int.normalize_of_nonpos
File: Mathlib/RingTheory/Int/Basic.lean

tactic: obtain rfl | h := h.eq_or_lt
state_before: z : ℤ
h : z ≤ 0
⊢ ↑normalize z = -z

tactic: simp
state_before: case inl
h : 0 ≤ 0
⊢ ↑normalize 0 = -0

tactic: rw [normalize_apply, normUnit_eq, if_neg (not_le_of_gt h), Units.val_neg, Units.val_one,
  mul_neg_one]
state_before: case inr
z : ℤ
h✝ : z ≤ 0
h : z < 0
⊢ ↑normalize z = -z
Theorem: Fin.prod_univ_one
File: Mathlib/Algebra/BigOperators/Fin.lean

tactic: simp
state_before: α : Type ?u.15924
β : Type u_1
inst✝ : CommMonoid β
f : Fin 1 → β
⊢ ∏ i : Fin 1, f i = f 0
Theorem: Set.indicator_compl
File: Mathlib/Algebra/IndicatorFunction.lean

tactic: rw [sub_eq_add_neg, indicator_compl']
state_before: α : Type u_2
β : Type ?u.95909
ι : Type ?u.95912
M : Type ?u.95915
N : Type ?u.95918
G✝ : Type ?u.95921
inst✝¹ : Group G✝
s✝ t : Set α
f✝ g : α → G✝
a : α
G : Type u_1
inst✝ : AddGroup G
s : Set α
f : α → G
⊢ indicator (sᶜ) f = f - indicator s f
Theorem: Rat.add_divInt
File: Mathlib/Data/Rat/Defs.lean

tactic: simp [h]
state_before: a✝ b✝ c✝ : ℚ
a b c : ℤ
h : c = 0
⊢ (a + b) /. c = a /. c + b /. c

tactic: rw [add_def'' h h, divInt_eq_iff h (mul_ne_zero h h)]
state_before: a✝ b✝ c✝ : ℚ
a b c : ℤ
h : ¬c = 0
⊢ (a + b) /. c = a /. c + b /. c

tactic: simp [add_mul, mul_assoc]
state_before: a✝ b✝ c✝ : ℚ
a b c : ℤ
h : ¬c = 0
⊢ (a + b) * (c * c) = (a * c + b * c) * c
Theorem: Multiset.disjoint_list_sum_right
File: Mathlib/Algebra/BigOperators/Basic.lean

tactic: simpa only [@disjoint_comm _ a] using disjoint_list_sum_left
state_before: ι : Type ?u.895297
β : Type u
α : Type v
γ : Type w
s s₁ s₂ : Finset α
a✝ : α
f g : α → β
a : Multiset α
l : List (Multiset α)
⊢ Disjoint a (List.sum l) ↔ ∀ (b : Multiset α), b ∈ l → Disjoint a b
Theorem: ULift.down_inj
File: Mathlib/Logic/Basic.lean

tactic: rw [h]
state_before: α : Type u_1
a b : ULift α
h : a = b
⊢ a.down = b.down
Theorem: Equiv.Perm.card_compl_support_modEq
File: Mathlib/GroupTheory/Perm/Cycle/Type.lean

tactic: rw [Nat.modEq_iff_dvd', ← Finset.card_compl, compl_compl, ← sum_cycleType]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
⊢ Finset.card (support σᶜ) ≡ Fintype.card α [MOD p]

tactic: refine Multiset.dvd_sum fun k hk => ?_
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
⊢ p ∣ sum (cycleType σ)

tactic: obtain ⟨m, -, hm⟩ := (Nat.dvd_prime_pow hp.out).mp (orderOf_dvd_of_pow_eq_one hσ)
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
k : ℕ
hk : k ∈ cycleType σ
⊢ p ∣ k

tactic: obtain ⟨l, -, rfl⟩ := (Nat.dvd_prime_pow hp.out).mp
  ((congr_arg _ hm).mp (dvd_of_mem_cycleType hk))
state_before: case intro.intro
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
k : ℕ
hk : k ∈ cycleType σ
m : ℕ
hm : orderOf σ = p ^ m
⊢ p ∣ k

tactic: exact dvd_pow_self _ fun h => (one_lt_of_mem_cycleType hk).ne <| by rw [h, pow_zero]
state_before: case intro.intro.intro.intro
α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
m : ℕ
hm : orderOf σ = p ^ m
l : ℕ
hk : p ^ l ∈ cycleType σ
⊢ p ∣ p ^ l

tactic: rw [h, pow_zero]
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
m : ℕ
hm : orderOf σ = p ^ m
l : ℕ
hk : p ^ l ∈ cycleType σ
h : l = 0
⊢ 1 = p ^ l

tactic: exact Finset.card_le_univ _
state_before: α : Type u_1
inst✝¹ : Fintype α
inst✝ : DecidableEq α
p n : ℕ
hp : Fact (Nat.Prime p)
σ : Perm α
hσ : σ ^ p ^ n = 1
⊢ Finset.card (support σᶜ) ≤ Fintype.card α
Theorem: MeasureTheory.snorm_indicator_le
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: refine' snorm_mono_ae (eventually_of_forall fun x => _)
state_before: α : Type u_2
E✝ : Type ?u.638627
F : Type ?u.638630
G : Type ?u.638633
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E✝
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c : E✝
f✝ : α → E✝
hf : AEStronglyMeasurable f✝ μ
E : Type u_1
inst✝ : NormedAddCommGroup E
f : α → E
⊢ snorm (Set.indicator s f) p μ ≤ snorm f p μ

tactic: suffices ‖s.indicator f x‖₊ ≤ ‖f x‖₊ by exact NNReal.coe_mono this
state_before: α : Type u_2
E✝ : Type ?u.638627
F : Type ?u.638630
G : Type ?u.638633
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E✝
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c : E✝
f✝ : α → E✝
hf : AEStronglyMeasurable f✝ μ
E : Type u_1
inst✝ : NormedAddCommGroup E
f : α → E
x : α
⊢ ‖Set.indicator s f x‖ ≤ ‖f x‖

tactic: rw [nnnorm_indicator_eq_indicator_nnnorm]
state_before: α : Type u_2
E✝ : Type ?u.638627
F : Type ?u.638630
G : Type ?u.638633
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E✝
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c : E✝
f✝ : α → E✝
hf : AEStronglyMeasurable f✝ μ
E : Type u_1
inst✝ : NormedAddCommGroup E
f : α → E
x : α
⊢ ‖Set.indicator s f x‖₊ ≤ ‖f x‖₊

tactic: exact s.indicator_le_self _ x
state_before: α : Type u_2
E✝ : Type ?u.638627
F : Type ?u.638630
G : Type ?u.638633
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E✝
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c : E✝
f✝ : α → E✝
hf : AEStronglyMeasurable f✝ μ
E : Type u_1
inst✝ : NormedAddCommGroup E
f : α → E
x : α
⊢ Set.indicator s (fun a => ‖f a‖₊) x ≤ ‖f x‖₊

tactic: exact NNReal.coe_mono this
state_before: α : Type u_2
E✝ : Type ?u.638627
F : Type ?u.638630
G : Type ?u.638633
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝³ : NormedAddCommGroup E✝
inst✝² : NormedAddCommGroup F
inst✝¹ : NormedAddCommGroup G
s : Set α
hs : MeasurableSet s
c : E✝
f✝ : α → E✝
hf : AEStronglyMeasurable f✝ μ
E : Type u_1
inst✝ : NormedAddCommGroup E
f : α → E
x : α
this : ‖Set.indicator s f x‖₊ ≤ ‖f x‖₊
⊢ ‖Set.indicator s f x‖ ≤ ‖f x‖
Theorem: Part.mod_get_eq
File: Mathlib/Data/Part.lean

tactic: simp [mod_def]
state_before: α : Type u_1
β : Type ?u.73049
γ : Type ?u.73052
inst✝ : Mod α
a b : Part α
hab : (a % b).Dom
⊢ get (a % b) hab = get a (_ : a.Dom) % get b (_ : b.Dom)

tactic: aesop
state_before: α : Type u_1
β : Type ?u.73049
γ : Type ?u.73052
inst✝ : Mod α
a b : Part α
hab : (a % b).Dom
⊢ get (Part.bind a fun y => map (fun x => y % x) b) (_ : (Part.bind a fun y => map (fun x => y % x) b).Dom) =
    get a (_ : a.Dom) % get b (_ : b.Dom)
Theorem: cyclesMap_comp
File: Mathlib/Algebra/Homology/Homology.lean

tactic: dsimp only [cyclesMap]
state_before: ι : Type u_1
V : Type u
inst✝² : Category V
inst✝¹ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
inst✝ : HasKernels V
C₁ C₂ C₃ : HomologicalComplex V c
f✝ f : C₁ ⟶ C₂
g : C₂ ⟶ C₃
i : ι
⊢ cyclesMap (f ≫ g) i = cyclesMap f i ≫ cyclesMap g i

tactic: simp [Subobject.factorThru_right]
state_before: ι : Type u_1
V : Type u
inst✝² : Category V
inst✝¹ : HasZeroMorphisms V
c : ComplexShape ι
C : HomologicalComplex V c
inst✝ : HasKernels V
C₁ C₂ C₃ : HomologicalComplex V c
f✝ f : C₁ ⟶ C₂
g : C₂ ⟶ C₃
i : ι
⊢ Subobject.factorThru (cycles C₃ i) (Subobject.arrow (cycles C₁ i) ≫ Hom.f (f ≫ g) i)
      (_ : Subobject.Factors (kernelSubobject (dFrom C₃ i)) (Subobject.arrow (cycles C₁ i) ≫ Hom.f (f ≫ g) i)) =
    Subobject.factorThru (cycles C₂ i) (Subobject.arrow (cycles C₁ i) ≫ Hom.f f i)
        (_ : Subobject.Factors (kernelSubobject (dFrom C₂ i)) (Subobject.arrow (cycles C₁ i) ≫ Hom.f f i)) ≫
      Subobject.factorThru (cycles C₃ i) (Subobject.arrow (cycles C₂ i) ≫ Hom.f g i)
        (_ : Subobject.Factors (kernelSubobject (dFrom C₃ i)) (Subobject.arrow (cycles C₂ i) ≫ Hom.f g i))
Theorem: MeasureTheory.ae_measure_preimage_mul_right_lt_top_of_ne_zero
File: Mathlib/MeasureTheory/Group/Prod.lean

tactic: refine' (ae_measure_preimage_mul_right_lt_top ν ν sm h3s).filter_mono _
state_before: G : Type u_1
inst✝⁷ : MeasurableSpace G
inst✝⁶ : Group G
inst✝⁵ : MeasurableMul₂ G
μ ν : Measure G
inst✝⁴ : SigmaFinite ν
inst✝³ : SigmaFinite μ
s : Set G
inst✝² : MeasurableInv G
inst✝¹ : IsMulLeftInvariant μ
inst✝ : IsMulLeftInvariant ν
sm : MeasurableSet s
h2s : ↑↑ν s ≠ 0
h3s : ↑↑ν s ≠ ⊤
⊢ ∀ᵐ (x : G) ∂μ, ↑↑ν ((fun y => y * x) ⁻¹' s) < ⊤

tactic: refine' (absolutelyContinuous_of_isMulLeftInvariant μ ν _).ae_le
state_before: G : Type u_1
inst✝⁷ : MeasurableSpace G
inst✝⁶ : Group G
inst✝⁵ : MeasurableMul₂ G
μ ν : Measure G
inst✝⁴ : SigmaFinite ν
inst✝³ : SigmaFinite μ
s : Set G
inst✝² : MeasurableInv G
inst✝¹ : IsMulLeftInvariant μ
inst✝ : IsMulLeftInvariant ν
sm : MeasurableSet s
h2s : ↑↑ν s ≠ 0
h3s : ↑↑ν s ≠ ⊤
⊢ ae μ ≤ ae ν

tactic: refine' mt _ h2s
state_before: G : Type u_1
inst✝⁷ : MeasurableSpace G
inst✝⁶ : Group G
inst✝⁵ : MeasurableMul₂ G
μ ν : Measure G
inst✝⁴ : SigmaFinite ν
inst✝³ : SigmaFinite μ
s : Set G
inst✝² : MeasurableInv G
inst✝¹ : IsMulLeftInvariant μ
inst✝ : IsMulLeftInvariant ν
sm : MeasurableSet s
h2s : ↑↑ν s ≠ 0
h3s : ↑↑ν s ≠ ⊤
⊢ ν ≠ 0

tactic: intro hν
state_before: G : Type u_1
inst✝⁷ : MeasurableSpace G
inst✝⁶ : Group G
inst✝⁵ : MeasurableMul₂ G
μ ν : Measure G
inst✝⁴ : SigmaFinite ν
inst✝³ : SigmaFinite μ
s : Set G
inst✝² : MeasurableInv G
inst✝¹ : IsMulLeftInvariant μ
inst✝ : IsMulLeftInvariant ν
sm : MeasurableSet s
h2s : ↑↑ν s ≠ 0
h3s : ↑↑ν s ≠ ⊤
⊢ ν = 0 → ↑↑ν s = 0

tactic: rw [hν, Measure.coe_zero, Pi.zero_apply]
state_before: G : Type u_1
inst✝⁷ : MeasurableSpace G
inst✝⁶ : Group G
inst✝⁵ : MeasurableMul₂ G
μ ν : Measure G
inst✝⁴ : SigmaFinite ν
inst✝³ : SigmaFinite μ
s : Set G
inst✝² : MeasurableInv G
inst✝¹ : IsMulLeftInvariant μ
inst✝ : IsMulLeftInvariant ν
sm : MeasurableSet s
h2s : ↑↑ν s ≠ 0
h3s : ↑↑ν s ≠ ⊤
hν : ν = 0
⊢ ↑↑ν s = 0
Theorem: Basis.det_self
File: Mathlib/LinearAlgebra/Determinant.lean

tactic: simp [e.det_apply]
state_before: R : Type u_1
inst✝⁶ : CommRing R
M : Type u_2
inst✝⁵ : AddCommGroup M
inst✝⁴ : Module R M
M' : Type ?u.2527336
inst✝³ : AddCommGroup M'
inst✝² : Module R M'
ι : Type u_3
inst✝¹ : DecidableEq ι
inst✝ : Fintype ι
e : Basis ι R M
⊢ ↑(det e) ↑e = 1
Theorem: MvPFunctor.M.dest_map
File: Mathlib/Data/PFunctor/Multivariate/M.lean

tactic: cases' x with a f
state_before: n : ℕ
P : MvPFunctor (n + 1)
α β : TypeVec n
g : α ⟹ β
x : M P α
⊢ dest P (g <$$> x) = (g ::: fun x => g <$$> x) <$$> dest P x

tactic: rw [map_eq]
state_before: case mk
n : ℕ
P : MvPFunctor (n + 1)
α β : TypeVec n
g : α ⟹ β
a : (mp P).A
f : B (mp P) a ⟹ α
⊢ dest P (g <$$> { fst := a, snd := f }) = (g ::: fun x => g <$$> x) <$$> dest P { fst := a, snd := f }

tactic: conv =>
  rhs
  rw [M.dest, M.dest', map_eq, appendFun_comp_splitFun]
state_before: case mk
n : ℕ
P : MvPFunctor (n + 1)
α β : TypeVec n
g : α ⟹ β
a : (mp P).A
f : B (mp P) a ⟹ α
⊢ dest P { fst := a, snd := g ⊚ f } = (g ::: fun x => g <$$> x) <$$> dest P { fst := a, snd := f }
Theorem: Subgroup.map_top_of_surjective
File: Mathlib/GroupTheory/Subgroup/Basic.lean

tactic: rw [eq_top_iff]
state_before: G : Type u_1
G' : Type ?u.282904
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.282913
inst✝² : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_2
inst✝¹ : Group N
P : Type ?u.282940
inst✝ : Group P
f : G →* N
h : Surjective ↑f
⊢ map f ⊤ = ⊤

tactic: intro x _
state_before: G : Type u_1
G' : Type ?u.282904
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.282913
inst✝² : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_2
inst✝¹ : Group N
P : Type ?u.282940
inst✝ : Group P
f : G →* N
h : Surjective ↑f
⊢ ⊤ ≤ map f ⊤

tactic: obtain ⟨y, hy⟩ := h x
state_before: G : Type u_1
G' : Type ?u.282904
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.282913
inst✝² : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_2
inst✝¹ : Group N
P : Type ?u.282940
inst✝ : Group P
f : G →* N
h : Surjective ↑f
x : N
a✝ : x ∈ ⊤
⊢ x ∈ map f ⊤

tactic: exact ⟨y, trivial, hy⟩
state_before: case intro
G : Type u_1
G' : Type ?u.282904
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.282913
inst✝² : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_2
inst✝¹ : Group N
P : Type ?u.282940
inst✝ : Group P
f : G →* N
h : Surjective ↑f
x : N
a✝ : x ∈ ⊤
y : G
hy : ↑f y = x
⊢ x ∈ map f ⊤
Theorem: PiNat.apply_firstDiff_ne
File: Mathlib/Topology/MetricSpace/PiNat.lean

tactic: rw [firstDiff_def, dif_pos h]
state_before: E : ℕ → Type u_1
x y : (n : ℕ) → E n
h : x ≠ y
⊢ x (firstDiff x y) ≠ y (firstDiff x y)

tactic: exact Nat.find_spec (ne_iff.1 h)
state_before: E : ℕ → Type u_1
x y : (n : ℕ) → E n
h : x ≠ y
⊢ x (Nat.find (_ : ∃ a, x a ≠ y a)) ≠ y (Nat.find (_ : ∃ a, x a ≠ y a))
Theorem: YoungDiagram.mem_cellsOfRowLens
File: Mathlib/Combinatorics/Young/YoungDiagram.lean

tactic: induction' w with w_hd w_tl w_ih generalizing c <;> rw [YoungDiagram.cellsOfRowLens]
state_before: w : List ℕ
c : ℕ × ℕ
⊢ c ∈ YoungDiagram.cellsOfRowLens w ↔ ∃ h, c.snd < List.get w { val := c.fst, isLt := h }

tactic: simp [YoungDiagram.cellsOfRowLens]
state_before: case nil
c✝ c : ℕ × ℕ
⊢ c ∈ ∅ ↔ ∃ h, c.snd < List.get [] { val := c.fst, isLt := h }

tactic: rcases c with ⟨⟨_, _⟩, _⟩
state_before: case cons
c✝ : ℕ × ℕ
w_hd : ℕ
w_tl : List ℕ
w_ih : ∀ {c : ℕ × ℕ}, c ∈ YoungDiagram.cellsOfRowLens w_tl ↔ ∃ h, c.snd < List.get w_tl { val := c.fst, isLt := h }
c : ℕ × ℕ
⊢ c ∈
      {0} ×ˢ Finset.range w_hd ∪
        Finset.map (Embedding.prodMap { toFun := Nat.succ, inj' := Nat.succ_injective } (Embedding.refl ℕ))
          (YoungDiagram.cellsOfRowLens w_tl) ↔
    ∃ h, c.snd < List.get (w_hd :: w_tl) { val := c.fst, isLt := h }

tactic: simp
state_before: case cons.mk.zero
c : ℕ × ℕ
w_hd : ℕ
w_tl : List ℕ
w_ih : ∀ {c : ℕ × ℕ}, c ∈ YoungDiagram.cellsOfRowLens w_tl ↔ ∃ h, c.snd < List.get w_tl { val := c.fst, isLt := h }
snd✝ : ℕ
⊢ (Nat.zero, snd✝) ∈
      {0} ×ˢ Finset.range w_hd ∪
        Finset.map (Embedding.prodMap { toFun := Nat.succ, inj' := Nat.succ_injective } (Embedding.refl ℕ))
          (YoungDiagram.cellsOfRowLens w_tl) ↔
    ∃ h, (Nat.zero, snd✝).snd < List.get (w_hd :: w_tl) { val := (Nat.zero, snd✝).fst, isLt := h }

tactic: simp [w_ih, -Finset.singleton_product, Nat.succ_lt_succ_iff]
state_before: case cons.mk.succ
c : ℕ × ℕ
w_hd : ℕ
w_tl : List ℕ
w_ih : ∀ {c : ℕ × ℕ}, c ∈ YoungDiagram.cellsOfRowLens w_tl ↔ ∃ h, c.snd < List.get w_tl { val := c.fst, isLt := h }
snd✝ n✝ : ℕ
⊢ (Nat.succ n✝, snd✝) ∈
      {0} ×ˢ Finset.range w_hd ∪
        Finset.map (Embedding.prodMap { toFun := Nat.succ, inj' := Nat.succ_injective } (Embedding.refl ℕ))
          (YoungDiagram.cellsOfRowLens w_tl) ↔
    ∃ h, (Nat.succ n✝, snd✝).snd < List.get (w_hd :: w_tl) { val := (Nat.succ n✝, snd✝).fst, isLt := h }
Theorem: StarSubalgebra.mem_sInf
File: Mathlib/Algebra/Star/Subalgebra.lean

tactic: simp only [← SetLike.mem_coe, coe_sInf, Set.mem_iInter₂]
state_before: F : Type ?u.675762
R : Type u_2
A : Type u_1
B : Type ?u.675771
inst✝⁹ : CommSemiring R
inst✝⁸ : StarRing R
inst✝⁷ : Semiring A
inst✝⁶ : Algebra R A
inst✝⁵ : StarRing A
inst✝⁴ : StarModule R A
inst✝³ : Semiring B
inst✝² : Algebra R B
inst✝¹ : StarRing B
inst✝ : StarModule R B
S : Set (StarSubalgebra R A)
x : A
⊢ x ∈ sInf S ↔ ∀ (p : StarSubalgebra R A), p ∈ S → x ∈ p
Theorem: sdiff_inf_distrib
File: Mathlib/Order/Heyting/Basic.lean

tactic: rw [sup_le_iff, sdiff_le_comm, le_inf_iff]
state_before: ι : Type ?u.136551
α : Type u_1
β : Type ?u.136557
inst✝ : GeneralizedCoheytingAlgebra α
a✝ b✝ c✝ d✝ a b c d : α
⊢ a \ (b ⊓ c) ≤ d ↔ a \ b ⊔ a \ c ≤ d

tactic: simp_rw [sdiff_le_comm]
state_before: ι : Type ?u.136551
α : Type u_1
β : Type ?u.136557
inst✝ : GeneralizedCoheytingAlgebra α
a✝ b✝ c✝ d✝ a b c d : α
⊢ a \ d ≤ b ∧ a \ d ≤ c ↔ a \ b ≤ d ∧ a \ c ≤ d
Theorem: isMinimal_iff_closed_smul_invariant
File: Mathlib/Dynamics/Minimal.lean

tactic: constructor
state_before: M : Type u_1
G : Type ?u.17773
α : Type u_2
inst✝⁵ : Monoid M
inst✝⁴ : Group G
inst✝³ : TopologicalSpace α
inst✝² : MulAction M α
inst✝¹ : MulAction G α
inst✝ : ContinuousConstSMul M α
⊢ IsMinimal M α ↔ ∀ (s : Set α), IsClosed s → (∀ (c : M), c • s ⊆ s) → s = ∅ ∨ s = univ

tactic: refine' fun H ↦ ⟨fun _ ↦ dense_iff_closure_eq.2 <| (H _ _ _).resolve_left _⟩
state_before: case mpr
M : Type u_1
G : Type ?u.17773
α : Type u_2
inst✝⁵ : Monoid M
inst✝⁴ : Group G
inst✝³ : TopologicalSpace α
inst✝² : MulAction M α
inst✝¹ : MulAction G α
inst✝ : ContinuousConstSMul M α
⊢ (∀ (s : Set α), IsClosed s → (∀ (c : M), c • s ⊆ s) → s = ∅ ∨ s = univ) → IsMinimal M α

tactic: exacts [isClosed_closure, fun _ ↦ smul_closure_orbit_subset _ _,
  (orbit_nonempty _).closure.ne_empty]
state_before: case mpr.refine'_1
M : Type u_1
G : Type ?u.17773
α : Type u_2
inst✝⁵ : Monoid M
inst✝⁴ : Group G
inst✝³ : TopologicalSpace α
inst✝² : MulAction M α
inst✝¹ : MulAction G α
inst✝ : ContinuousConstSMul M α
H : ∀ (s : Set α), IsClosed s → (∀ (c : M), c • s ⊆ s) → s = ∅ ∨ s = univ
x✝ : α
⊢ IsClosed (closure (orbit M x✝))

case mpr.refine'_2
M : Type u_1
G : Type ?u.17773
α : Type u_2
inst✝⁵ : Monoid M
inst✝⁴ : Group G
inst✝³ : TopologicalSpace α
inst✝² : MulAction M α
inst✝¹ : MulAction G α
inst✝ : ContinuousConstSMul M α
H : ∀ (s : Set α), IsClosed s → (∀ (c : M), c • s ⊆ s) → s = ∅ ∨ s = univ
x✝ : α
⊢ ∀ (c : M), c • closure (orbit M x✝) ⊆ closure (orbit M x✝)

case mpr.refine'_3
M : Type u_1
G : Type ?u.17773
α : Type u_2
inst✝⁵ : Monoid M
inst✝⁴ : Group G
inst✝³ : TopologicalSpace α
inst✝² : MulAction M α
inst✝¹ : MulAction G α
inst✝ : ContinuousConstSMul M α
H : ∀ (s : Set α), IsClosed s → (∀ (c : M), c • s ⊆ s) → s = ∅ ∨ s = univ
x✝ : α
⊢ ¬closure (orbit M x✝) = ∅

tactic: intro _ _
state_before: case mp
M : Type u_1
G : Type ?u.17773
α : Type u_2
inst✝⁵ : Monoid M
inst✝⁴ : Group G
inst✝³ : TopologicalSpace α
inst✝² : MulAction M α
inst✝¹ : MulAction G α
inst✝ : ContinuousConstSMul M α
⊢ IsMinimal M α → ∀ (s : Set α), IsClosed s → (∀ (c : M), c • s ⊆ s) → s = ∅ ∨ s = univ

tactic: exact eq_empty_or_univ_of_smul_invariant_closed M
state_before: case mp
M : Type u_1
G : Type ?u.17773
α : Type u_2
inst✝⁵ : Monoid M
inst✝⁴ : Group G
inst✝³ : TopologicalSpace α
inst✝² : MulAction M α
inst✝¹ : MulAction G α
inst✝ : ContinuousConstSMul M α
a✝ : IsMinimal M α
s✝ : Set α
⊢ IsClosed s✝ → (∀ (c : M), c • s✝ ⊆ s✝) → s✝ = ∅ ∨ s✝ = univ
Theorem: Polynomial.isRoot_of_eval₂_map_eq_zero
File: Mathlib/Data/Polynomial/AlgebraMap.lean

tactic: intro h
state_before: R : Type u
S : Type v
T : Type w
A : Type z
A' : Type ?u.1305085
B' : Type ?u.1305088
a b : R
n : ℕ
inst✝⁷ : CommSemiring A'
inst✝⁶ : Semiring B'
inst✝⁵ : CommSemiring R
p q : R[X]
inst✝⁴ : Semiring A
inst✝³ : Algebra R A
B : Type ?u.1305301
inst✝² : Semiring B
inst✝¹ : Algebra R B
x : A
inst✝ : Semiring S
f : R →+* S
hf : Function.Injective ↑f
r : R
⊢ eval₂ f (↑f r) p = 0 → IsRoot p r

tactic: apply hf
state_before: R : Type u
S : Type v
T : Type w
A : Type z
A' : Type ?u.1305085
B' : Type ?u.1305088
a b : R
n : ℕ
inst✝⁷ : CommSemiring A'
inst✝⁶ : Semiring B'
inst✝⁵ : CommSemiring R
p q : R[X]
inst✝⁴ : Semiring A
inst✝³ : Algebra R A
B : Type ?u.1305301
inst✝² : Semiring B
inst✝¹ : Algebra R B
x : A
inst✝ : Semiring S
f : R →+* S
hf : Function.Injective ↑f
r : R
h : eval₂ f (↑f r) p = 0
⊢ IsRoot p r

tactic: rw [← eval₂_hom, h, f.map_zero]
state_before: case a
R : Type u
S : Type v
T : Type w
A : Type z
A' : Type ?u.1305085
B' : Type ?u.1305088
a b : R
n : ℕ
inst✝⁷ : CommSemiring A'
inst✝⁶ : Semiring B'
inst✝⁵ : CommSemiring R
p q : R[X]
inst✝⁴ : Semiring A
inst✝³ : Algebra R A
B : Type ?u.1305301
inst✝² : Semiring B
inst✝¹ : Algebra R B
x : A
inst✝ : Semiring S
f : R →+* S
hf : Function.Injective ↑f
r : R
h : eval₂ f (↑f r) p = 0
⊢ ↑f (eval r p) = ↑f 0
Theorem: ContinuousLinearEquiv.symm_toLinearEquiv
File: Mathlib/Topology/Algebra/Module/Basic.lean

tactic: ext
state_before: R₁ : Type u_1
R₂ : Type u_2
R₃ : Type ?u.1532382
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_3
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type ?u.1533236
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_4
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type ?u.1533254
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type ?u.1533263
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
⊢ (ContinuousLinearEquiv.symm e).toLinearEquiv = LinearEquiv.symm e.toLinearEquiv

tactic: rfl
state_before: case h
R₁ : Type u_1
R₂ : Type u_2
R₃ : Type ?u.1532382
inst✝²⁴ : Semiring R₁
inst✝²³ : Semiring R₂
inst✝²² : Semiring R₃
σ₁₂ : R₁ →+* R₂
σ₂₁ : R₂ →+* R₁
inst✝²¹ : RingHomInvPair σ₁₂ σ₂₁
inst✝²⁰ : RingHomInvPair σ₂₁ σ₁₂
σ₂₃ : R₂ →+* R₃
σ₃₂ : R₃ →+* R₂
inst✝¹⁹ : RingHomInvPair σ₂₃ σ₃₂
inst✝¹⁸ : RingHomInvPair σ₃₂ σ₂₃
σ₁₃ : R₁ →+* R₃
σ₃₁ : R₃ →+* R₁
inst✝¹⁷ : RingHomInvPair σ₁₃ σ₃₁
inst✝¹⁶ : RingHomInvPair σ₃₁ σ₁₃
inst✝¹⁵ : RingHomCompTriple σ₁₂ σ₂₃ σ₁₃
inst✝¹⁴ : RingHomCompTriple σ₃₂ σ₂₁ σ₃₁
M₁ : Type u_3
inst✝¹³ : TopologicalSpace M₁
inst✝¹² : AddCommMonoid M₁
M'₁ : Type ?u.1533236
inst✝¹¹ : TopologicalSpace M'₁
inst✝¹⁰ : AddCommMonoid M'₁
M₂ : Type u_4
inst✝⁹ : TopologicalSpace M₂
inst✝⁸ : AddCommMonoid M₂
M₃ : Type ?u.1533254
inst✝⁷ : TopologicalSpace M₃
inst✝⁶ : AddCommMonoid M₃
M₄ : Type ?u.1533263
inst✝⁵ : TopologicalSpace M₄
inst✝⁴ : AddCommMonoid M₄
inst✝³ : Module R₁ M₁
inst✝² : Module R₁ M'₁
inst✝¹ : Module R₂ M₂
inst✝ : Module R₃ M₃
e : M₁ ≃SL[σ₁₂] M₂
x✝ : M₂
⊢ ↑(ContinuousLinearEquiv.symm e).toLinearEquiv x✝ = ↑(LinearEquiv.symm e.toLinearEquiv) x✝
Theorem: pred_ne_self
File: Mathlib/Algebra/Ring/Basic.lean

tactic: simp [←sub_eq_add_neg, h]
state_before: α : Type u_1
inst✝¹ : NonAssocRing α
inst✝ : Nontrivial α
a : α
h : a - 1 = a
⊢ a + -1 = a + -0
Theorem: Valued.extension_extends
File: Mathlib/Topology/Algebra/ValuedField.lean

tactic: refine' Completion.denseInducing_coe.extend_eq_of_tendsto _
state_before: K : Type u_2
inst✝¹ : Field K
Γ₀ : Type u_1
inst✝ : LinearOrderedCommGroupWithZero Γ₀
hv : Valued K Γ₀
x : K
⊢ extension (↑K x) = ↑v x

tactic: rw [← Completion.denseInducing_coe.nhds_eq_comap]
state_before: K : Type u_2
inst✝¹ : Field K
Γ₀ : Type u_1
inst✝ : LinearOrderedCommGroupWithZero Γ₀
hv : Valued K Γ₀
x : K
⊢ Tendsto (↑v) (Filter.comap (↑K) (𝓝 (↑K x))) (𝓝 (↑v x))

tactic: exact Valued.continuous_valuation.continuousAt
state_before: K : Type u_2
inst✝¹ : Field K
Γ₀ : Type u_1
inst✝ : LinearOrderedCommGroupWithZero Γ₀
hv : Valued K Γ₀
x : K
⊢ Tendsto (↑v) (𝓝 x) (𝓝 (↑v x))
Theorem: loc_compact_t2_tot_disc_iff_tot_sep
File: Mathlib/Topology/Separation.lean

tactic: constructor
state_before: α : Type u
β : Type v
inst✝³ : TopologicalSpace α
H : Type u_1
inst✝² : TopologicalSpace H
inst✝¹ : LocallyCompactSpace H
inst✝ : T2Space H
⊢ TotallyDisconnectedSpace H ↔ TotallySeparatedSpace H

tactic: apply TotallySeparatedSpace.totallyDisconnectedSpace
state_before: case mpr
α : Type u
β : Type v
inst✝³ : TopologicalSpace α
H : Type u_1
inst✝² : TopologicalSpace H
inst✝¹ : LocallyCompactSpace H
inst✝ : T2Space H
⊢ TotallySeparatedSpace H → TotallyDisconnectedSpace H

tactic: intro h
state_before: case mp
α : Type u
β : Type v
inst✝³ : TopologicalSpace α
H : Type u_1
inst✝² : TopologicalSpace H
inst✝¹ : LocallyCompactSpace H
inst✝ : T2Space H
⊢ TotallyDisconnectedSpace H → TotallySeparatedSpace H

tactic: exact totallySeparatedSpace_of_t1_of_basis_clopen loc_compact_Haus_tot_disc_of_zero_dim
state_before: case mp
α : Type u
β : Type v
inst✝³ : TopologicalSpace α
H : Type u_1
inst✝² : TopologicalSpace H
inst✝¹ : LocallyCompactSpace H
inst✝ : T2Space H
h : TotallyDisconnectedSpace H
⊢ TotallySeparatedSpace H