tasksource/leandojo huggingface dataset:
Theorem: isAlgebraic_rat
File: Mathlib/RingTheory/Algebraic.lean

tactic: rw [← map_ratCast (algebraMap R A)]
state_before: R✝ : Type u
S : Type ?u.101390
A✝ : Type v
inst✝⁹ : CommRing R✝
inst✝⁸ : CommRing S
inst✝⁷ : Ring A✝
inst✝⁶ : Algebra R✝ A✝
inst✝⁵ : Algebra R✝ S
inst✝⁴ : Algebra S A✝
inst✝³ : IsScalarTower R✝ S A✝
R : Type u
A : Type v
inst✝² : DivisionRing A
inst✝¹ : Field R
inst✝ : Algebra R A
n : ℚ
⊢ IsAlgebraic R ↑n

tactic: exact isAlgebraic_algebraMap (Rat.cast n)
state_before: R✝ : Type u
S : Type ?u.101390
A✝ : Type v
inst✝⁹ : CommRing R✝
inst✝⁸ : CommRing S
inst✝⁷ : Ring A✝
inst✝⁶ : Algebra R✝ A✝
inst✝⁵ : Algebra R✝ S
inst✝⁴ : Algebra S A✝
inst✝³ : IsScalarTower R✝ S A✝
R : Type u
A : Type v
inst✝² : DivisionRing A
inst✝¹ : Field R
inst✝ : Algebra R A
n : ℚ
⊢ IsAlgebraic R (↑(algebraMap R A) ↑n)
Theorem: Monotone.ciSup_mem_Inter_Icc_of_antitone
File: Mathlib/Order/ConditionallyCompleteLattice/Basic.lean

tactic: refine' mem_iInter.2 fun n => _
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.61525
ι : Sort ?u.61528
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
⊢ (⨆ (n : β), f n) ∈ ⋂ (n : β), Icc (f n) (g n)

tactic: haveI : Nonempty β := ⟨n⟩
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.61525
ι : Sort ?u.61528
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
n : β
⊢ (⨆ (n : β), f n) ∈ Icc (f n) (g n)

tactic: have : ∀ m, f m ≤ g n := fun m => hf.forall_le_of_antitone hg h m n
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.61525
ι : Sort ?u.61528
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
n : β
this : Nonempty β
⊢ (⨆ (n : β), f n) ∈ Icc (f n) (g n)

tactic: exact ⟨le_ciSup ⟨g <| n, forall_range_iff.2 this⟩ _, ciSup_le this⟩
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.61525
ι : Sort ?u.61528
inst✝¹ : ConditionallyCompleteLattice α
s t : Set α
a b : α
inst✝ : SemilatticeSup β
f g : β → α
hf : Monotone f
hg : Antitone g
h : f ≤ g
n : β
this✝ : Nonempty β
this : ∀ (m : β), f m ≤ g n
⊢ (⨆ (n : β), f n) ∈ Icc (f n) (g n)
Theorem: zero_memℓp
File: Mathlib/Analysis/NormedSpace/lpSpace.lean

tactic: rcases p.trichotomy with (rfl | rfl | hp)
state_before: α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ Memℓp 0 p

tactic: apply memℓp_zero
state_before: case inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ Memℓp 0 0

tactic: simp
state_before: case inl.hf
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ Set.Finite {i | OfNat.ofNat 0 i ≠ 0}

tactic: apply memℓp_infty
state_before: case inr.inl
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ Memℓp 0 ⊤

tactic: simp only [norm_zero, Pi.zero_apply]
state_before: case inr.inl.hf
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ BddAbove (Set.range fun i => ‖OfNat.ofNat 0 i‖)

tactic: exact bddAbove_singleton.mono Set.range_const_subset
state_before: case inr.inl.hf
α : Type u_1
E : α → Type u_2
q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
⊢ BddAbove (Set.range fun i => 0)

tactic: apply memℓp_gen
state_before: case inr.inr
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < ENNReal.toReal p
⊢ Memℓp 0 p

tactic: simp [Real.zero_rpow hp.ne', summable_zero]
state_before: case inr.inr.hf
α : Type u_1
E : α → Type u_2
p q : ℝ≥0∞
inst✝ : (i : α) → NormedAddCommGroup (E i)
hp : 0 < ENNReal.toReal p
⊢ Summable fun i => ‖OfNat.ofNat 0 i‖ ^ ENNReal.toReal p
Theorem: Metric.bounded_biUnion
File: Mathlib/Topology/MetricSpace/Basic.lean

tactic: simp only [bounded_iff_isBounded, isBounded_biUnion H]
state_before: α : Type u
β : Type v
X : Type ?u.491823
ι : Type ?u.491826
inst✝ : PseudoMetricSpace α
x : α
s✝ t : Set α
r : ℝ
I : Set β
s : β → Set α
H : Set.Finite I
⊢ Bounded (⋃ (i : β) (_ : i ∈ I), s i) ↔ ∀ (i : β), i ∈ I → Bounded (s i)
Theorem: Subgroup.bot_prod_bot
File: Mathlib/GroupTheory/Subgroup/Basic.lean

tactic: simp [coe_prod, Prod.one_eq_mk]
state_before: G : Type u_1
G' : Type ?u.302242
inst✝⁴ : Group G
inst✝³ : Group G'
A : Type ?u.302251
inst✝² : AddGroup A
H K : Subgroup G
k : Set G
N : Type u_2
inst✝¹ : Group N
P : Type ?u.302278
inst✝ : Group P
⊢ ↑(prod ⊥ ⊥) = ↑⊥
Theorem: Set.dual_ordSeparatingSet
File: Mathlib/Data/Set/Intervals/OrdConnectedComponent.lean

tactic: simp only [ordSeparatingSet, mem_preimage, ← toDual.surjective.iUnion_comp, ofDual_toDual,
  dual_ordConnectedComponent, ← preimage_compl, preimage_inter, preimage_iUnion]
state_before: α : Type u_1
inst✝ : LinearOrder α
s t : Set α
x y z : α
⊢ ordSeparatingSet (↑ofDual ⁻¹' s) (↑ofDual ⁻¹' t) = ↑ofDual ⁻¹' ordSeparatingSet s t
Theorem: MeasureTheory.VectorMeasure.restrict_le_zero_of_not_measurable
File: Mathlib/MeasureTheory/Measure/VectorMeasure.lean

tactic: rw [restrict_zero, restrict_not_measurable _ hi]
state_before: α : Type u_1
β : Type ?u.592052
m : MeasurableSpace α
M : Type u_2
inst✝¹ : TopologicalSpace M
inst✝ : OrderedAddCommMonoid M
v w : VectorMeasure α M
i j : Set α
hi : ¬MeasurableSet i
⊢ restrict v i ≤ restrict 0 i
Theorem: USize.sizeOf
File: src/lean/Init/SizeOfLemmas.lean

tactic: cases a
state_before: a : USize
⊢ SizeOf.sizeOf a = toNat a + 2

tactic: simp_arith [USize.toNat]
state_before: case mk
val✝ : Fin size
⊢ SizeOf.sizeOf { val := val✝ } = toNat { val := val✝ } + 2
Theorem: Equiv.Perm.decomposeFin_symm_apply_succ
File: Mathlib/GroupTheory/Perm/Fin.lean

tactic: refine' Fin.cases _ _ p
state_before: n : ℕ
e : Perm (Fin n)
p : Fin (n + 1)
x : Fin n
⊢ ↑(↑decomposeFin.symm (p, e)) (Fin.succ x) = ↑(swap 0 p) (Fin.succ (↑e x))

tactic: simp [Equiv.Perm.decomposeFin, EquivFunctor.map]
state_before: case refine'_1
n : ℕ
e : Perm (Fin n)
p : Fin (n + 1)
x : Fin n
⊢ ↑(↑decomposeFin.symm (0, e)) (Fin.succ x) = ↑(swap 0 0) (Fin.succ (↑e x))

tactic: intro i
state_before: case refine'_2
n : ℕ
e : Perm (Fin n)
p : Fin (n + 1)
x : Fin n
⊢ ∀ (i : Fin n), ↑(↑decomposeFin.symm (Fin.succ i, e)) (Fin.succ x) = ↑(swap 0 (Fin.succ i)) (Fin.succ (↑e x))

tactic: by_cases h : i = e x
state_before: case refine'_2
n : ℕ
e : Perm (Fin n)
p : Fin (n + 1)
x i : Fin n
⊢ ↑(↑decomposeFin.symm (Fin.succ i, e)) (Fin.succ x) = ↑(swap 0 (Fin.succ i)) (Fin.succ (↑e x))

tactic: simp [h, Equiv.Perm.decomposeFin, EquivFunctor.map]
state_before: case pos
n : ℕ
e : Perm (Fin n)
p : Fin (n + 1)
x i : Fin n
h : i = ↑e x
⊢ ↑(↑decomposeFin.symm (Fin.succ i, e)) (Fin.succ x) = ↑(swap 0 (Fin.succ i)) (Fin.succ (↑e x))

tactic: simp [h, Fin.succ_ne_zero, Equiv.Perm.decomposeFin, EquivFunctor.map,
  swap_apply_def, Ne.symm h]
state_before: case neg
n : ℕ
e : Perm (Fin n)
p : Fin (n + 1)
x i : Fin n
h : ¬i = ↑e x
⊢ ↑(↑decomposeFin.symm (Fin.succ i, e)) (Fin.succ x) = ↑(swap 0 (Fin.succ i)) (Fin.succ (↑e x))
Theorem: MeasureTheory.Lp.simpleFunc.toSimpleFunc_toLp
File: Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean

tactic: rw [← AEEqFun.mk_eq_mk]
state_before: α : Type u_1
β : Type ?u.1579645
ι : Type ?u.1579648
E : Type u_2
F : Type ?u.1579654
𝕜 : Type ?u.1579657
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p
⊢ ↑(toSimpleFunc (toLp f hfi)) =ᵐ[μ] ↑f

tactic: exact Classical.choose_spec (toLp f hfi).2
state_before: α : Type u_1
β : Type ?u.1579645
ι : Type ?u.1579648
E : Type u_2
F : Type ?u.1579654
𝕜 : Type ?u.1579657
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p
⊢ AEEqFun.mk ↑(toSimpleFunc (toLp f hfi)) ?m.1580096 = AEEqFun.mk ↑f ?m.1580097

α : Type u_1
β : Type ?u.1579645
ι : Type ?u.1579648
E : Type u_2
F : Type ?u.1579654
𝕜 : Type ?u.1579657
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p
⊢ AEStronglyMeasurable (↑(toSimpleFunc (toLp f hfi))) μ

α : Type u_1
β : Type ?u.1579645
ι : Type ?u.1579648
E : Type u_2
F : Type ?u.1579654
𝕜 : Type ?u.1579657
inst✝² : MeasurableSpace α
inst✝¹ : NormedAddCommGroup E
inst✝ : NormedAddCommGroup F
p : ℝ≥0∞
μ : Measure α
f : α →ₛ E
hfi : Memℒp (↑f) p
⊢ AEStronglyMeasurable (↑f) μ
Theorem: summable_of_nnnorm_bounded
File: Mathlib/Analysis/Normed/Group/InfiniteSum.lean

tactic: exact_mod_cast h i
state_before: ι : Type u_1
α : Type ?u.23601
E : Type u_2
F : Type ?u.23607
inst✝² : SeminormedAddCommGroup E
inst✝¹ : SeminormedAddCommGroup F
inst✝ : CompleteSpace E
f : ι → E
g : ι → ℝ≥0
hg : Summable g
h : ∀ (i : ι), ‖f i‖₊ ≤ g i
i : ι
⊢ ‖f i‖ ≤ (fun i => ↑(g i)) i
Theorem: Convex.interior_nonempty_iff_affineSpan_eq_top
File: Mathlib/Analysis/NormedSpace/AddTorsorBases.lean

tactic: rw [← interior_convexHull_nonempty_iff_affineSpan_eq_top, hs.convexHull_eq]
state_before: V : Type u_1
P : Type ?u.126361
inst✝⁴ : NormedAddCommGroup V
inst✝³ : NormedSpace ℝ V
inst✝² : MetricSpace P
inst✝¹ : NormedAddTorsor V P
inst✝ : FiniteDimensional ℝ V
s : Set V
hs : Convex ℝ s
⊢ Set.Nonempty (interior s) ↔ affineSpan ℝ s = ⊤
Theorem: MvPolynomial.bind₁_C_right
File: Mathlib/Data/MvPolynomial/Monad.lean

tactic: simp [bind₁, algebraMap_eq]
state_before: σ : Type u_3
τ : Type u_1
R : Type u_2
S : Type ?u.79903
T : Type ?u.79906
inst✝² : CommSemiring R
inst✝¹ : CommSemiring S
inst✝ : CommSemiring T
f✝ f : σ → MvPolynomial τ R
x : R
⊢ ↑(bind₁ f) (↑C x) = ↑C x
Theorem: Matrix.one_div_zpow
File: Mathlib/LinearAlgebra/Matrix/ZPow.lean

tactic: simp only [one_div, inv_zpow]
state_before: n' : Type u_1
inst✝² : DecidableEq n'
inst✝¹ : Fintype n'
R : Type u_2
inst✝ : CommRing R
A : M
n : ℤ
⊢ (1 / A) ^ n = 1 / A ^ n
Theorem: Subgroup.card_subgroup_dvd_card
File: Mathlib/GroupTheory/Coset.lean

tactic: classical simp [card_eq_card_quotient_mul_card_subgroup s, @dvd_mul_left ℕ]
state_before: α : Type u_1
inst✝² : Group α
s✝ t : Subgroup α
inst✝¹ : Fintype α
s : Subgroup α
inst✝ : Fintype { x // x ∈ s }
⊢ Fintype.card { x // x ∈ s } ∣ Fintype.card α

tactic: simp [card_eq_card_quotient_mul_card_subgroup s, @dvd_mul_left ℕ]
state_before: α : Type u_1
inst✝² : Group α
s✝ t : Subgroup α
inst✝¹ : Fintype α
s : Subgroup α
inst✝ : Fintype { x // x ∈ s }
⊢ Fintype.card { x // x ∈ s } ∣ Fintype.card α
Theorem: pow_three
File: Mathlib/Algebra/GroupPower/Basic.lean

tactic: rw [pow_succ, pow_two]
state_before: α : Type ?u.12765
M : Type u
N : Type v
G : Type w
H : Type x
A : Type y
B : Type z
R : Type u₁
S : Type u₂
inst✝¹ : Monoid M
inst✝ : AddMonoid A
a : M
⊢ a ^ 3 = a * (a * a)
Theorem: Finset.image₂_image_right
File: Mathlib/Data/Finset/NAry.lean

tactic: push_cast
state_before: α : Type u_2
α' : Type ?u.61166
β : Type u_4
β' : Type ?u.61172
γ : Type u_3
γ' : Type ?u.61178
δ : Type u_1
δ' : Type ?u.61184
ε : Type ?u.61187
ε' : Type ?u.61190
ζ : Type ?u.61193
ζ' : Type ?u.61196
ν : Type ?u.61199
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f✝ f' : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
f : α → γ → δ
g : β → γ
⊢ ↑(image₂ f s (image g t)) = ↑(image₂ (fun a b => f a (g b)) s t)

tactic: exact image2_image_right _ _
state_before: α : Type u_2
α' : Type ?u.61166
β : Type u_4
β' : Type ?u.61172
γ : Type u_3
γ' : Type ?u.61178
δ : Type u_1
δ' : Type ?u.61184
ε : Type ?u.61187
ε' : Type ?u.61190
ζ : Type ?u.61193
ζ' : Type ?u.61196
ν : Type ?u.61199
inst✝⁷ : DecidableEq α'
inst✝⁶ : DecidableEq β'
inst✝⁵ : DecidableEq γ
inst✝⁴ : DecidableEq γ'
inst✝³ : DecidableEq δ
inst✝² : DecidableEq δ'
inst✝¹ : DecidableEq ε
inst✝ : DecidableEq ε'
f✝ f' : α → β → γ
g✝ g' : α → β → γ → δ
s s' : Finset α
t t' : Finset β
u u' : Finset γ
a a' : α
b b' : β
c : γ
f : α → γ → δ
g : β → γ
⊢ image2 f (↑s) (g '' ↑t) = image2 (fun a b => f a (g b)) ↑s ↑t
Theorem: List.zipWith_map_right
File: Mathlib/Data/List/Zip.lean

tactic: convert List.zipWith_map f id g l l'
state_before: α : Type u
β : Type u_3
γ : Type u_2
δ : Type u_1
ε : Type ?u.50129
f : α → β → γ
l : List α
g : δ → β
l' : List δ
⊢ zipWith f l (map g l') = zipWith (fun x => f x ∘ g) l l'

tactic: exact Eq.symm (List.map_id _)
state_before: case h.e'_2.h.e'_5
α : Type u
β : Type u_3
γ : Type u_2
δ : Type u_1
ε : Type ?u.50129
f : α → β → γ
l : List α
g : δ → β
l' : List δ
⊢ l = map id l
Theorem: Asymptotics.SuperpolynomialDecay.polynomial_mul
File: Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean

tactic: simpa [add_mul] using hp.add hq
state_before: α : Type u_2
β : Type u_1
l : Filter α
k f g g' : α → β
inst✝³ : TopologicalSpace β
inst✝² : CommSemiring β
inst✝¹ : ContinuousAdd β
inst✝ : ContinuousMul β
hf : SuperpolynomialDecay l k f
p✝ p q : β[X]
hp : SuperpolynomialDecay l k fun x => eval (k x) p * f x
hq : SuperpolynomialDecay l k fun x => eval (k x) q * f x
⊢ SuperpolynomialDecay l k fun x => eval (k x) (p + q) * f x

tactic: simpa [mul_assoc] using (hf.param_pow_mul n).const_mul c
state_before: α : Type u_2
β : Type u_1
l : Filter α
k f g g' : α → β
inst✝³ : TopologicalSpace β
inst✝² : CommSemiring β
inst✝¹ : ContinuousAdd β
inst✝ : ContinuousMul β
hf : SuperpolynomialDecay l k f
p : β[X]
n : ℕ
c : β
⊢ SuperpolynomialDecay l k fun x => eval (k x) (↑(monomial n) c) * f x
Theorem: sdiff_sup
File: Mathlib/Order/BooleanAlgebra.lean

tactic: rw [sup_inf_left]
state_before: α : Type u
β : Type ?u.16048
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ y ⊓ (x ⊔ z) ⊔ y \ x ⊓ y \ z = (y ⊓ (x ⊔ z) ⊔ y \ x) ⊓ (y ⊓ (x ⊔ z) ⊔ y \ z)

tactic: rw [@inf_sup_left _ _ y]
state_before: α : Type u
β : Type ?u.16048
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (y ⊓ (x ⊔ z) ⊔ y \ x) ⊓ (y ⊓ (x ⊔ z) ⊔ y \ z) = (y ⊓ x ⊔ y ⊓ z ⊔ y \ x) ⊓ (y ⊓ x ⊔ y ⊓ z ⊔ y \ z)

tactic: ac_rfl
state_before: α : Type u
β : Type ?u.16048
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (y ⊓ x ⊔ y ⊓ z ⊔ y \ x) ⊓ (y ⊓ x ⊔ y ⊓ z ⊔ y \ z) = (y ⊓ z ⊔ (y ⊓ x ⊔ y \ x)) ⊓ (y ⊓ x ⊔ (y ⊓ z ⊔ y \ z))

tactic: rw [sup_inf_sdiff, sup_inf_sdiff]
state_before: α : Type u
β : Type ?u.16048
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (y ⊓ z ⊔ (y ⊓ x ⊔ y \ x)) ⊓ (y ⊓ x ⊔ (y ⊓ z ⊔ y \ z)) = (y ⊓ z ⊔ y) ⊓ (y ⊓ x ⊔ y)

tactic: ac_rfl
state_before: α : Type u
β : Type ?u.16048
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (y ⊓ z ⊔ y) ⊓ (y ⊓ x ⊔ y) = (y ⊔ y ⊓ z) ⊓ (y ⊔ y ⊓ x)

tactic: rw [sup_inf_self, sup_inf_self, inf_idem]
state_before: α : Type u
β : Type ?u.16048
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (y ⊔ y ⊓ z) ⊓ (y ⊔ y ⊓ x) = y

tactic: rw [inf_sup_left]
state_before: α : Type u
β : Type ?u.16048
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ y ⊓ (x ⊔ z) ⊓ (y \ x ⊓ y \ z) = (y ⊓ x ⊔ y ⊓ z) ⊓ (y \ x ⊓ y \ z)

tactic: rw [inf_sup_right]
state_before: α : Type u
β : Type ?u.16048
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ (y ⊓ x ⊔ y ⊓ z) ⊓ (y \ x ⊓ y \ z) = y ⊓ x ⊓ (y \ x ⊓ y \ z) ⊔ y ⊓ z ⊓ (y \ x ⊓ y \ z)

tactic: ac_rfl
state_before: α : Type u
β : Type ?u.16048
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ y ⊓ x ⊓ (y \ x ⊓ y \ z) ⊔ y ⊓ z ⊓ (y \ x ⊓ y \ z) = y ⊓ x ⊓ y \ x ⊓ y \ z ⊔ y \ x ⊓ (y \ z ⊓ (y ⊓ z))

tactic: rw [inf_inf_sdiff, bot_inf_eq, bot_sup_eq, @inf_comm _ _ (y \ z),
    inf_inf_sdiff, inf_bot_eq]
state_before: α : Type u
β : Type ?u.16048
w x y z : α
inst✝ : GeneralizedBooleanAlgebra α
⊢ y ⊓ x ⊓ y \ x ⊓ y \ z ⊔ y \ x ⊓ (y \ z ⊓ (y ⊓ z)) = ⊥
Theorem: IsUnit.mul_div_cancel'
File: Mathlib/Algebra/Hom/Units.lean

tactic: rw [mul_comm, h.div_mul_cancel]
state_before: F : Type ?u.63416
G : Type ?u.63419
α : Type u_1
M : Type ?u.63425
N : Type ?u.63428
inst✝ : DivisionCommMonoid α
a b✝ c d : α
h : IsUnit a
b : α
⊢ a * (b / a) = b
Theorem: WeakDual.CharacterSpace.isClosed
File: Mathlib/Topology/Algebra/Module/CharacterSpace.lean

tactic: rw [eq_set_map_one_map_mul, Set.setOf_and]
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝¹⁰ : CommRing 𝕜
inst✝⁹ : NoZeroDivisors 𝕜
inst✝⁸ : TopologicalSpace 𝕜
inst✝⁷ : ContinuousAdd 𝕜
inst✝⁶ : ContinuousConstSMul 𝕜 𝕜
inst✝⁵ : TopologicalSpace A
inst✝⁴ : Semiring A
inst✝³ : Algebra 𝕜 A
inst✝² : Nontrivial 𝕜
inst✝¹ : T2Space 𝕜
inst✝ : ContinuousMul 𝕜
⊢ IsClosed (characterSpace 𝕜 A)

tactic: refine' IsClosed.inter (isClosed_eq (eval_continuous _) continuous_const) _
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝¹⁰ : CommRing 𝕜
inst✝⁹ : NoZeroDivisors 𝕜
inst✝⁸ : TopologicalSpace 𝕜
inst✝⁷ : ContinuousAdd 𝕜
inst✝⁶ : ContinuousConstSMul 𝕜 𝕜
inst✝⁵ : TopologicalSpace A
inst✝⁴ : Semiring A
inst✝³ : Algebra 𝕜 A
inst✝² : Nontrivial 𝕜
inst✝¹ : T2Space 𝕜
inst✝ : ContinuousMul 𝕜
⊢ IsClosed ({a | ↑a 1 = 1} ∩ {a | ∀ (x y : A), ↑a (x * y) = ↑a x * ↑a y})

tactic: simpa only [(union_zero 𝕜 A).symm] using union_zero_isClosed _ _
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝¹⁰ : CommRing 𝕜
inst✝⁹ : NoZeroDivisors 𝕜
inst✝⁸ : TopologicalSpace 𝕜
inst✝⁷ : ContinuousAdd 𝕜
inst✝⁶ : ContinuousConstSMul 𝕜 𝕜
inst✝⁵ : TopologicalSpace A
inst✝⁴ : Semiring A
inst✝³ : Algebra 𝕜 A
inst✝² : Nontrivial 𝕜
inst✝¹ : T2Space 𝕜
inst✝ : ContinuousMul 𝕜
⊢ IsClosed {a | ∀ (x y : A), ↑a (x * y) = ↑a x * ↑a y}
Theorem: AffineIsometryEquiv.dist_pointReflection_self_real
File: Mathlib/Analysis/NormedSpace/AffineIsometry.lean

tactic: rw [dist_pointReflection_self, Real.norm_two]
state_before: 𝕜 : Type ?u.2147195
V : Type u_2
V₁ : Type ?u.2147201
V₂ : Type ?u.2147204
V₃ : Type ?u.2147207
V₄ : Type ?u.2147210
P₁ : Type ?u.2147213
P : Type u_1
P₂ : Type ?u.2147219
P₃ : Type ?u.2147222
P₄ : Type ?u.2147225
inst✝²² : NormedField 𝕜
inst✝²¹ : SeminormedAddCommGroup V
inst✝²⁰ : SeminormedAddCommGroup V₁
inst✝¹⁹ : SeminormedAddCommGroup V₂
inst✝¹⁸ : SeminormedAddCommGroup V₃
inst✝¹⁷ : SeminormedAddCommGroup V₄
inst✝¹⁶ : NormedSpace 𝕜 V
inst✝¹⁵ : NormedSpace 𝕜 V₁
inst✝¹⁴ : NormedSpace 𝕜 V₂
inst✝¹³ : NormedSpace 𝕜 V₃
inst✝¹² : NormedSpace 𝕜 V₄
inst✝¹¹ : PseudoMetricSpace P
inst✝¹⁰ : MetricSpace P₁
inst✝⁹ : PseudoMetricSpace P₂
inst✝⁸ : PseudoMetricSpace P₃
inst✝⁷ : PseudoMetricSpace P₄
inst✝⁶ : NormedAddTorsor V P
inst✝⁵ : NormedAddTorsor V₁ P₁
inst✝⁴ : NormedAddTorsor V₂ P₂
inst✝³ : NormedAddTorsor V₃ P₃
inst✝² : NormedAddTorsor V₄ P₄
e : P ≃ᵃⁱ[𝕜] P₂
α : Type ?u.2147749
inst✝¹ : TopologicalSpace α
inst✝ : NormedSpace ℝ V
x y : P
⊢ dist (↑(pointReflection ℝ x) y) y = 2 * dist x y
Theorem: Nat.ceil_zero
File: Mathlib/Algebra/Order/Floor.lean

tactic: rw [← Nat.cast_zero, ceil_natCast]
state_before: F : Type ?u.51711
α : Type u_1
β : Type ?u.51717
inst✝¹ : LinearOrderedSemiring α
inst✝ : FloorSemiring α
a : α
n : ℕ
⊢ ⌈0⌉₊ = 0
Theorem: mul_le_iff_le_one_right'
File: Mathlib/Algebra/Order/Monoid/Lemmas.lean

tactic: rw [mul_one]
state_before: α : Type u_1
β : Type ?u.18862
inst✝³ : MulOneClass α
inst✝² : LE α
inst✝¹ : CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
inst✝ : ContravariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1
a b : α
⊢ a * b ≤ a ↔ a * b ≤ a * 1
Theorem: Polynomial.lifts_iff_coeff_lifts
File: Mathlib/Data/Polynomial/Lifts.lean

tactic: rw [lifts_iff_ringHom_rangeS, mem_map_rangeS f]
state_before: R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
p : S[X]
⊢ p ∈ lifts f ↔ ∀ (n : ℕ), coeff p n ∈ Set.range ↑f

tactic: rfl
state_before: R : Type u
inst✝¹ : Semiring R
S : Type v
inst✝ : Semiring S
f : R →+* S
p : S[X]
⊢ (∀ (n : ℕ), coeff p n ∈ RingHom.rangeS f) ↔ ∀ (n : ℕ), coeff p n ∈ Set.range ↑f
Theorem: SignType.nonneg_iff_ne_neg_one
File: Mathlib/Data/Sign.lean

tactic: cases a <;> decide
state_before: a : SignType
⊢ 0 ≤ a ↔ a ≠ -1
Theorem: Path.Homotopic.hpath_hext
File: Mathlib/Topology/Homotopy/Path.lean

tactic: obtain rfl : x₀ = x₂ := by convert hp 0 <;> simp
state_before: X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ x₂ x₃ : X
p₁ : Path x₀ x₁
p₂ : Path x₂ x₃
hp : ∀ (t : ↑I), ↑p₁ t = ↑p₂ t
⊢ HEq (Quotient.mk (Homotopic.setoid x₀ x₁) p₁) (Quotient.mk (Homotopic.setoid x₂ x₃) p₂)

tactic: obtain rfl : x₁ = x₃ := by convert hp 1 <;> simp
state_before: X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ x₃ : X
p₁ : Path x₀ x₁
p₂ : Path x₀ x₃
hp : ∀ (t : ↑I), ↑p₁ t = ↑p₂ t
⊢ HEq (Quotient.mk (Homotopic.setoid x₀ x₁) p₁) (Quotient.mk (Homotopic.setoid x₀ x₃) p₂)

tactic: rw [heq_iff_eq]
state_before: X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ : X
p₁ p₂ : Path x₀ x₁
hp : ∀ (t : ↑I), ↑p₁ t = ↑p₂ t
⊢ HEq (Quotient.mk (Homotopic.setoid x₀ x₁) p₁) (Quotient.mk (Homotopic.setoid x₀ x₁) p₂)

tactic: congr
state_before: X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ : X
p₁ p₂ : Path x₀ x₁
hp : ∀ (t : ↑I), ↑p₁ t = ↑p₂ t
⊢ Quotient.mk (Homotopic.setoid x₀ x₁) p₁ = Quotient.mk (Homotopic.setoid x₀ x₁) p₂

tactic: ext t
state_before: case e_a
X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ : X
p₁ p₂ : Path x₀ x₁
hp : ∀ (t : ↑I), ↑p₁ t = ↑p₂ t
⊢ p₁ = p₂

tactic: exact hp t
state_before: case e_a.a.h
X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ : X
p₁ p₂ : Path x₀ x₁
hp : ∀ (t : ↑I), ↑p₁ t = ↑p₂ t
t : ↑I
⊢ ↑p₁ t = ↑p₂ t

tactic: convert hp 0 <;> simp
state_before: X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ x₂ x₃ : X
p₁ : Path x₀ x₁
p₂ : Path x₂ x₃
hp : ∀ (t : ↑I), ↑p₁ t = ↑p₂ t
⊢ x₀ = x₂

tactic: convert hp 1 <;> simp
state_before: X : Type u
Y : Type v
inst✝¹ : TopologicalSpace X
inst✝ : TopologicalSpace Y
x₀ x₁ x₃ : X
p₁ : Path x₀ x₁
p₂ : Path x₀ x₃
hp : ∀ (t : ↑I), ↑p₁ t = ↑p₂ t
⊢ x₁ = x₃
Theorem: Nat.uniformEmbedding_coe_rat
File: Mathlib/Topology/Instances/Rat.lean

tactic: simpa using Nat.pairwise_one_le_dist
state_before: ⊢ Pairwise fun x y => 1 ≤ dist ↑x ↑y
Theorem: Polynomial.coe_eq_one_iff
File: Mathlib/RingTheory/PowerSeries/Basic.lean

tactic: rw [← coe_one, coe_inj]
state_before: σ : Type ?u.4375066
R : Type u_1
inst✝ : CommSemiring R
φ ψ : R[X]
⊢ ↑φ = 1 ↔ φ = 1
Theorem: Hyperreal.infinitePos_mul_of_infinitePos_not_infinitesimal_pos
File: Mathlib/Data/Real/Hyperreal.lean

tactic: have hy₁' := not_forall.mp (mt infinitesimal_def.2 hy₁)
state_before: x y : ℝ*
hx : InfinitePos x
hy₁ : ¬Infinitesimal y
hy₂ : 0 < y
r : ℝ
⊢ ↑r < x * y

tactic: let ⟨r₁, hy₁''⟩ := hy₁'
state_before: x y : ℝ*
hx : InfinitePos x
hy₁ : ¬Infinitesimal y
hy₂ : 0 < y
r : ℝ
hy₁' : ∃ x, ¬(0 < x → -↑x < y ∧ y < ↑x)
⊢ ↑r < x * y

tactic: have hyr : 0 < r₁ ∧ ↑r₁ ≤ y := by
  rwa [not_imp, ← abs_lt, not_lt, abs_of_pos hy₂] at hy₁''
state_before: x y : ℝ*
hx : InfinitePos x
hy₁ : ¬Infinitesimal y
hy₂ : 0 < y
r : ℝ
hy₁' : ∃ x, ¬(0 < x → -↑x < y ∧ y < ↑x)
r₁ : ℝ
hy₁'' : ¬(0 < r₁ → -↑r₁ < y ∧ y < ↑r₁)
⊢ ↑r < x * y

tactic: rw [← div_mul_cancel r (ne_of_gt hyr.1), coe_mul]
state_before: x y : ℝ*
hx : InfinitePos x
hy₁ : ¬Infinitesimal y
hy₂ : 0 < y
r : ℝ
hy₁' : ∃ x, ¬(0 < x → -↑x < y ∧ y < ↑x)
r₁ : ℝ
hy₁'' : ¬(0 < r₁ → -↑r₁ < y ∧ y < ↑r₁)
hyr : 0 < r₁ ∧ ↑r₁ ≤ y
⊢ ↑r < x * y

tactic: exact mul_lt_mul (hx (r / r₁)) hyr.2 (coe_lt_coe.2 hyr.1) (le_of_lt (hx 0))
state_before: x y : ℝ*
hx : InfinitePos x
hy₁ : ¬Infinitesimal y
hy₂ : 0 < y
r : ℝ
hy₁' : ∃ x, ¬(0 < x → -↑x < y ∧ y < ↑x)
r₁ : ℝ
hy₁'' : ¬(0 < r₁ → -↑r₁ < y ∧ y < ↑r₁)
hyr : 0 < r₁ ∧ ↑r₁ ≤ y
⊢ ↑(r / r₁) * ↑r₁ < x * y

tactic: rwa [not_imp, ← abs_lt, not_lt, abs_of_pos hy₂] at hy₁''
state_before: x y : ℝ*
hx : InfinitePos x
hy₁ : ¬Infinitesimal y
hy₂ : 0 < y
r : ℝ
hy₁' : ∃ x, ¬(0 < x → -↑x < y ∧ y < ↑x)
r₁ : ℝ
hy₁'' : ¬(0 < r₁ → -↑r₁ < y ∧ y < ↑r₁)
⊢ 0 < r₁ ∧ ↑r₁ ≤ y
Theorem: Module.DualBases.coeffs_lc
File: Mathlib/LinearAlgebra/Dual.lean

tactic: ext i
state_before: R : Type u_2
M : Type u_3
ι : Type u_1
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
e : ι → M
ε : ι → Dual R M
inst✝ : DecidableEq ι
h : DualBases e ε
l : ι →₀ R
⊢ coeffs h (lc e l) = l

tactic: rw [h.coeffs_apply, h.dual_lc]
state_before: case h
R : Type u_2
M : Type u_3
ι : Type u_1
inst✝³ : CommRing R
inst✝² : AddCommGroup M
inst✝¹ : Module R M
e : ι → M
ε : ι → Dual R M
inst✝ : DecidableEq ι
h : DualBases e ε
l : ι →₀ R
i : ι
⊢ ↑(coeffs h (lc e l)) i = ↑l i