tasksource/leandojo huggingface dataset:
Theorem: Module.End.map_generalizedEigenrange_le
File: Mathlib/LinearAlgebra/Eigenspace/Basic.lean

tactic: rw [generalizedEigenrange]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
μ : K
n : ℕ
⊢ Submodule.map f (generalizedEigenrange f μ n) = LinearMap.range (f * (f - ↑(algebraMap K (End K V)) μ) ^ n)

tactic: exact (LinearMap.range_comp _ _).symm
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
μ : K
n : ℕ
⊢ Submodule.map f (LinearMap.range ((f - ↑(algebraMap K (End K V)) μ) ^ n)) =
    LinearMap.range (f * (f - ↑(algebraMap K (End K V)) μ) ^ n)

tactic: rw [Algebra.mul_sub_algebraMap_pow_commutes]
state_before: K R : Type v
V M : Type w
inst✝⁵ : CommRing R
inst✝⁴ : AddCommGroup M
inst✝³ : Module R M
inst✝² : Field K
inst✝¹ : AddCommGroup V
inst✝ : Module K V
f : End K V
μ : K
n : ℕ
⊢ LinearMap.range (f * (f - ↑(algebraMap K (End K V)) μ) ^ n) =
    LinearMap.range ((f - ↑(algebraMap K (End K V)) μ) ^ n * f)
Theorem: MvPolynomial.mapAlgEquiv_trans
File: Mathlib/Data/MvPolynomial/Equiv.lean

tactic: ext
state_before: R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_4
a a' a₁ a₂ : R
e✝ : ℕ
s : σ →₀ ℕ
inst✝⁶ : CommSemiring R
A₁ : Type u_1
A₂ : Type u_2
A₃ : Type u_3
inst✝⁵ : CommSemiring A₁
inst✝⁴ : CommSemiring A₂
inst✝³ : CommSemiring A₃
inst✝² : Algebra R A₁
inst✝¹ : Algebra R A₂
inst✝ : Algebra R A₃
e : A₁ ≃ₐ[R] A₂
f : A₂ ≃ₐ[R] A₃
⊢ AlgEquiv.trans (mapAlgEquiv σ e) (mapAlgEquiv σ f) = mapAlgEquiv σ (AlgEquiv.trans e f)

tactic: simp only [AlgEquiv.trans_apply, mapAlgEquiv_apply, map_map]
state_before: case h.a
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_4
a a' a₁ a₂ : R
e✝ : ℕ
s : σ →₀ ℕ
inst✝⁶ : CommSemiring R
A₁ : Type u_1
A₂ : Type u_2
A₃ : Type u_3
inst✝⁵ : CommSemiring A₁
inst✝⁴ : CommSemiring A₂
inst✝³ : CommSemiring A₃
inst✝² : Algebra R A₁
inst✝¹ : Algebra R A₂
inst✝ : Algebra R A₃
e : A₁ ≃ₐ[R] A₂
f : A₂ ≃ₐ[R] A₃
a✝ : MvPolynomial σ A₁
m✝ : σ →₀ ℕ
⊢ coeff m✝ (↑(AlgEquiv.trans (mapAlgEquiv σ e) (mapAlgEquiv σ f)) a✝) =
    coeff m✝ (↑(mapAlgEquiv σ (AlgEquiv.trans e f)) a✝)

tactic: rfl
state_before: case h.a
R : Type u
S₁ : Type v
S₂ : Type w
S₃ : Type x
σ : Type u_4
a a' a₁ a₂ : R
e✝ : ℕ
s : σ →₀ ℕ
inst✝⁶ : CommSemiring R
A₁ : Type u_1
A₂ : Type u_2
A₃ : Type u_3
inst✝⁵ : CommSemiring A₁
inst✝⁴ : CommSemiring A₂
inst✝³ : CommSemiring A₃
inst✝² : Algebra R A₁
inst✝¹ : Algebra R A₂
inst✝ : Algebra R A₃
e : A₁ ≃ₐ[R] A₂
f : A₂ ≃ₐ[R] A₃
a✝ : MvPolynomial σ A₁
m✝ : σ →₀ ℕ
⊢ coeff m✝ (↑(map (RingHom.comp ↑f ↑e)) a✝) = coeff m✝ (↑(map ↑(AlgEquiv.trans e f)) a✝)
Theorem: MvQPF.liftpPreservation_iff_uniform
File: Mathlib/Data/QPF/Multivariate/Basic.lean

tactic: rw [← suppPreservation_iff_liftpPreservation, suppPreservation_iff_isUniform]
state_before: n : ℕ
F : TypeVec n → Type u_1
inst✝ : MvFunctor F
q : MvQPF F
⊢ LiftPPreservation ↔ IsUniform
Theorem: DFA.mem_accepts
File: Mathlib/Computability/DFA.lean

tactic: rfl
state_before: α : Type u
σ : Type v
M : DFA α σ
x : List α
⊢ x ∈ accepts M ↔ evalFrom M M.start x ∈ M.accept
Theorem: Num.le_iff_cmp
File: Mathlib/Data/Num/Lemmas.lean

tactic: rw [← cmp_swap]
state_before: α : Type ?u.484320
m n : Num
⊢ cmp n m = Ordering.lt ↔ cmp m n = Ordering.gt

tactic: cases cmp m n <;> exact by decide
state_before: α : Type ?u.484320
m n : Num
⊢ Ordering.swap (cmp m n) = Ordering.lt ↔ cmp m n = Ordering.gt

tactic: decide
state_before: α : Type ?u.484320
m n : Num
⊢ Ordering.swap Ordering.gt = Ordering.lt ↔ Ordering.gt = Ordering.gt
Theorem: MeasurableSpace.measurableSet_injective
File: Mathlib/MeasureTheory/MeasurableSpaceDef.lean

tactic: congr
state_before: α : Type u_1
β : Type ?u.11608
γ : Type ?u.11611
δ : Type ?u.11614
δ' : Type ?u.11617
ι : Sort ?u.11620
s t u : Set α
MeasurableSet'✝¹ : Set α → Prop
measurableSet_empty✝¹ : MeasurableSet'✝¹ ∅
measurableSet_compl✝¹ : ∀ (s : Set α), MeasurableSet'✝¹ s → MeasurableSet'✝¹ (sᶜ)
measurableSet_iUnion✝¹ : ∀ (f : ℕ → Set α), (∀ (i : ℕ), MeasurableSet'✝¹ (f i)) → MeasurableSet'✝¹ (⋃ (i : ℕ), f i)
MeasurableSet'✝ : Set α → Prop
measurableSet_empty✝ : MeasurableSet'✝ ∅
measurableSet_compl✝ : ∀ (s : Set α), MeasurableSet'✝ s → MeasurableSet'✝ (sᶜ)
measurableSet_iUnion✝ : ∀ (f : ℕ → Set α), (∀ (i : ℕ), MeasurableSet'✝ (f i)) → MeasurableSet'✝ (⋃ (i : ℕ), f i)
x✝ : MeasurableSet = MeasurableSet
⊢ { MeasurableSet' := MeasurableSet'✝¹, measurableSet_empty := measurableSet_empty✝¹,
      measurableSet_compl := measurableSet_compl✝¹, measurableSet_iUnion := measurableSet_iUnion✝¹ } =
    { MeasurableSet' := MeasurableSet'✝, measurableSet_empty := measurableSet_empty✝,
      measurableSet_compl := measurableSet_compl✝, measurableSet_iUnion := measurableSet_iUnion✝ }
Theorem: List.length_erase_of_mem
File: Std/Data/List/Lemmas.lean

tactic: rw [erase_eq_eraseP]
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
h : a ∈ l
⊢ length (List.erase l a) = pred (length l)

tactic: exact length_eraseP_of_mem h (decide_eq_true rfl)
state_before: α : Type u_1
inst✝ : DecidableEq α
a : α
l : List α
h : a ∈ l
⊢ length (eraseP (fun b => decide (a = b)) l) = pred (length l)
Theorem: Finset.lt_sup_iff
File: Mathlib/Data/Finset/Lattice.lean

tactic: apply Iff.intro
state_before: F : Type ?u.212488
α : Type u_1
β : Type ?u.212494
γ : Type ?u.212497
ι : Type u_2
κ : Type ?u.212503
inst✝¹ : LinearOrder α
inst✝ : OrderBot α
s : Finset ι
f : ι → α
a : α
⊢ a < sup s f ↔ ∃ b, b ∈ s ∧ a < f b

tactic: rw [sup_cons, lt_sup_iff]
state_before: case mp.cons
F : Type ?u.212488
α : Type u_1
β : Type ?u.212494
γ : Type ?u.212497
ι : Type u_2
κ : Type ?u.212503
inst✝¹ : LinearOrder α
inst✝ : OrderBot α
s : Finset ι
f : ι → α
a : α
c : ι
t : Finset ι
hc : ¬c ∈ t
ih : a < sup t f → ∃ b, b ∈ t ∧ a < f b
⊢ a < sup (cons c t hc) f → ∃ b, b ∈ cons c t hc ∧ a < f b

tactic: exact fun
| Or.inl h => ⟨c, mem_cons.2 (Or.inl rfl), h⟩
| Or.inr h => let ⟨b, hb, hlt⟩ := ih h; ⟨b, mem_cons.2 (Or.inr hb), hlt⟩
state_before: case mp.cons
F : Type ?u.212488
α : Type u_1
β : Type ?u.212494
γ : Type ?u.212497
ι : Type u_2
κ : Type ?u.212503
inst✝¹ : LinearOrder α
inst✝ : OrderBot α
s : Finset ι
f : ι → α
a : α
c : ι
t : Finset ι
hc : ¬c ∈ t
ih : a < sup t f → ∃ b, b ∈ t ∧ a < f b
⊢ a < f c ∨ a < sup t f → ∃ b, b ∈ cons c t hc ∧ a < f b

tactic: exact fun ⟨b, hb, hlt⟩ => lt_of_lt_of_le hlt (le_sup hb)
state_before: case mpr
F : Type ?u.212488
α : Type u_1
β : Type ?u.212494
γ : Type ?u.212497
ι : Type u_2
κ : Type ?u.212503
inst✝¹ : LinearOrder α
inst✝ : OrderBot α
s : Finset ι
f : ι → α
a : α
⊢ (∃ b, b ∈ s ∧ a < f b) → a < sup s f
Theorem: Scott.isωSup_iff_isLUB
File: Mathlib/Topology/OmegaCompletePartialOrder.lean

tactic: simp [IsωSup, IsLUB, IsLeast, upperBounds, lowerBounds]
state_before: α : Type u
inst✝ : Preorder α
c : Chain α
x : α
⊢ IsωSup c x ↔ IsLUB (range ↑c) x
Theorem: List.take_concat_get
File: Std/Data/List/Init/Lemmas.lean

tactic: rw [concat_eq_append, append_assoc, singleton_append, get_drop_eq_drop, take_append_drop]
state_before: α : Type u_1
l : List α
i : Nat
h : i < length l
⊢ l = concat (take i l) l[i] ++ drop (i + 1) l
Theorem: UV.disjoint_of_mem_compression_of_not_mem
File: Mathlib/Combinatorics/SetFamily/Compression/UV.lean

tactic: rw [mem_compression] at h
state_before: α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u v a b : α
h : a ∈ 𝓒 u v s
ha : ¬a ∈ s
⊢ Disjoint v a

tactic: obtain h | ⟨-, b, hb, hba⟩ := h
state_before: α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u v a b : α
h : a ∈ s ∧ compress u v a ∈ s ∨ ¬a ∈ s ∧ ∃ b, b ∈ s ∧ compress u v b = a
ha : ¬a ∈ s
⊢ Disjoint v a

tactic: unfold compress at hba
state_before: case inr.intro.intro.intro
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u v a b✝ : α
ha : ¬a ∈ s
b : α
hb : b ∈ s
hba : compress u v b = a
⊢ Disjoint v a

tactic: split_ifs at hba
state_before: case inr.intro.intro.intro
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u v a b✝ : α
ha : ¬a ∈ s
b : α
hb : b ∈ s
hba : (if Disjoint u b ∧ v ≤ b then (b ⊔ u) \ v else b) = a
⊢ Disjoint v a

tactic: cases ha h.1
state_before: case inl
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u v a b : α
ha : ¬a ∈ s
h : a ∈ s ∧ compress u v a ∈ s
⊢ Disjoint v a

tactic: rw [← hba]
state_before: case inr.intro.intro.intro.inl
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u v a b✝ : α
ha : ¬a ∈ s
b : α
hb : b ∈ s
h✝ : Disjoint u b ∧ v ≤ b
hba : (b ⊔ u) \ v = a
⊢ Disjoint v a

tactic: exact disjoint_sdiff_self_right
state_before: case inr.intro.intro.intro.inl
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u v a b✝ : α
ha : ¬a ∈ s
b : α
hb : b ∈ s
h✝ : Disjoint u b ∧ v ≤ b
hba : (b ⊔ u) \ v = a
⊢ Disjoint v ((b ⊔ u) \ v)

tactic: cases ne_of_mem_of_not_mem hb ha hba
state_before: case inr.intro.intro.intro.inr
α : Type u_1
inst✝² : GeneralizedBooleanAlgebra α
inst✝¹ : DecidableRel Disjoint
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
s : Finset α
u v a b✝ : α
ha : ¬a ∈ s
b : α
hb : b ∈ s
h✝ : ¬(Disjoint u b ∧ v ≤ b)
hba : b = a
⊢ Disjoint v a
Theorem: Nat.modEq_zero_iff_dvd
File: Mathlib/Data/Nat/ModEq.lean

tactic: rw [ModEq, zero_mod, dvd_iff_mod_eq_zero]
state_before: m n a b c d : ℕ
⊢ a ≡ 0 [MOD n] ↔ n ∣ a
Theorem: Finset.orderEmbOfFin_unique
File: Mathlib/Data/Finset/Sort.lean

tactic: apply Fin.strictMono_unique hmono (s.orderEmbOfFin h).strictMono
state_before: α : Type u_1
β : Type ?u.51338
inst✝ : LinearOrder α
s : Finset α
k : ℕ
h : card s = k
f : Fin k → α
hfs : ∀ (x : Fin k), f x ∈ s
hmono : StrictMono f
⊢ f = ↑(orderEmbOfFin s h)

tactic: rw [range_orderEmbOfFin, ← Set.image_univ, ← coe_univ, ← coe_image, coe_inj]
state_before: α : Type u_1
β : Type ?u.51338
inst✝ : LinearOrder α
s : Finset α
k : ℕ
h : card s = k
f : Fin k → α
hfs : ∀ (x : Fin k), f x ∈ s
hmono : StrictMono f
⊢ Set.range f = Set.range ↑(orderEmbOfFin s h)

tactic: refine' eq_of_subset_of_card_le (fun x hx => _) _
state_before: α : Type u_1
β : Type ?u.51338
inst✝ : LinearOrder α
s : Finset α
k : ℕ
h : card s = k
f : Fin k → α
hfs : ∀ (x : Fin k), f x ∈ s
hmono : StrictMono f
⊢ image f univ = s

tactic: rcases mem_image.1 hx with ⟨x, _, rfl⟩
state_before: case refine'_1
α : Type u_1
β : Type ?u.51338
inst✝ : LinearOrder α
s : Finset α
k : ℕ
h : card s = k
f : Fin k → α
hfs : ∀ (x : Fin k), f x ∈ s
hmono : StrictMono f
x : α
hx : x ∈ image f univ
⊢ x ∈ s

tactic: exact hfs x
state_before: case refine'_1.intro.intro
α : Type u_1
β : Type ?u.51338
inst✝ : LinearOrder α
s : Finset α
k : ℕ
h : card s = k
f : Fin k → α
hfs : ∀ (x : Fin k), f x ∈ s
hmono : StrictMono f
x : Fin k
left✝ : x ∈ univ
hx : f x ∈ image f univ
⊢ f x ∈ s

tactic: rw [h, card_image_of_injective _ hmono.injective, card_univ, Fintype.card_fin]
state_before: case refine'_2
α : Type u_1
β : Type ?u.51338
inst✝ : LinearOrder α
s : Finset α
k : ℕ
h : card s = k
f : Fin k → α
hfs : ∀ (x : Fin k), f x ∈ s
hmono : StrictMono f
⊢ card s ≤ card (image f univ)
Theorem: Matrix.vandermonde_transpose_mul_vandermonde
File: Mathlib/LinearAlgebra/Vandermonde.lean

tactic: simp only [vandermonde_apply, Matrix.mul_apply, Matrix.transpose_apply, pow_add]
state_before: R : Type u_1
inst✝ : CommRing R
n : ℕ
v : Fin n → R
i j : Fin n
⊢ ((vandermonde v)ᵀ ⬝ vandermonde v) i j = ∑ k : Fin n, v k ^ (↑i + ↑j)
Theorem: Nat.add_pos_right
File: Std/Data/Nat/Lemmas.lean

tactic: rw [Nat.add_comm]
state_before: n m : Nat
h : 0 < n
⊢ 0 < m + n

tactic: exact add_pos_left h m
state_before: n m : Nat
h : 0 < n
⊢ 0 < n + m
Theorem: Function.Periodic.sub_period
File: Mathlib/Algebra/Periodic.lean

tactic: rw [sub_eq_add_neg, ← add_assoc, h2.neg, h1]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.81127
f g : α → β
c c₁ c₂ x✝ : α
inst✝ : AddGroup α
h1 : Periodic f c₁
h2 : Periodic f c₂
x : α
⊢ f (x + (c₁ - c₂)) = f x
Theorem: Filter.coprod_cofinite
File: Mathlib/Order/Filter/Cofinite.lean

tactic: simp only [compl_mem_coprod, mem_cofinite, compl_compl, finite_image_fst_and_snd_iff]
state_before: ι : Type ?u.3352
α : Type u_1
β : Type u_2
l : Filter α
s : Set (α × β)
⊢ sᶜ ∈ Filter.coprod cofinite cofinite ↔ sᶜ ∈ cofinite
Theorem: MulSalemSpencer.mul_left₀
File: Mathlib/Combinatorics/Additive/SalemSpencer.lean

tactic: rintro _ _ _ ⟨b, hb, rfl⟩ ⟨c, hc, rfl⟩ ⟨d, hd, rfl⟩ h
state_before: F : Type ?u.95828
α : Type u_1
β : Type ?u.95834
𝕜 : Type ?u.95837
E : Type ?u.95840
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NoZeroDivisors α
s : Set α
a : α
hs : MulSalemSpencer s
ha : a ≠ 0
⊢ MulSalemSpencer ((fun x x_1 => x * x_1) a '' s)

tactic: rw [mul_mul_mul_comm, mul_mul_mul_comm a d] at h
state_before: case intro.intro.intro.intro.intro.intro
F : Type ?u.95828
α : Type u_1
β : Type ?u.95834
𝕜 : Type ?u.95837
E : Type ?u.95840
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NoZeroDivisors α
s : Set α
a : α
hs : MulSalemSpencer s
ha : a ≠ 0
b : α
hb : b ∈ s
c : α
hc : c ∈ s
d : α
hd : d ∈ s
h : (fun x x_1 => x * x_1) a b * (fun x x_1 => x * x_1) a c = (fun x x_1 => x * x_1) a d * (fun x x_1 => x * x_1) a d
⊢ (fun x x_1 => x * x_1) a b = (fun x x_1 => x * x_1) a c

tactic: rw [hs hb hc hd (mul_left_cancel₀ (mul_ne_zero ha ha) h)]
state_before: case intro.intro.intro.intro.intro.intro
F : Type ?u.95828
α : Type u_1
β : Type ?u.95834
𝕜 : Type ?u.95837
E : Type ?u.95840
inst✝¹ : CancelCommMonoidWithZero α
inst✝ : NoZeroDivisors α
s : Set α
a : α
hs : MulSalemSpencer s
ha : a ≠ 0
b : α
hb : b ∈ s
c : α
hc : c ∈ s
d : α
hd : d ∈ s
h : a * a * (b * c) = a * a * (d * d)
⊢ (fun x x_1 => x * x_1) a b = (fun x x_1 => x * x_1) a c
Theorem: Pretrivialization.preimage_symm_proj_inter
File: Mathlib/Topology/FiberBundle/Trivialization.lean

tactic: ext ⟨x, y⟩
state_before: ι : Type ?u.9734
B : Type u_1
F : Type u_2
E : B → Type ?u.9745
Z : Type u_3
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x : Z
s : Set B
⊢ ↑(LocalEquiv.symm e.toLocalEquiv) ⁻¹' (proj ⁻¹' s) ∩ e.baseSet ×ˢ univ = (s ∩ e.baseSet) ×ˢ univ

tactic: suffices x ∈ e.baseSet → (proj (e.toLocalEquiv.symm (x, y)) ∈ s ↔ x ∈ s) by
  simpa only [prod_mk_mem_set_prod_eq, mem_inter_iff, and_true_iff, mem_univ, and_congr_left_iff]
state_before: case h.mk
ι : Type ?u.9734
B : Type u_1
F : Type u_2
E : B → Type ?u.9745
Z : Type u_3
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
⊢ (x, y) ∈ ↑(LocalEquiv.symm e.toLocalEquiv) ⁻¹' (proj ⁻¹' s) ∩ e.baseSet ×ˢ univ ↔ (x, y) ∈ (s ∩ e.baseSet) ×ˢ univ

tactic: intro h
state_before: case h.mk
ι : Type ?u.9734
B : Type u_1
F : Type u_2
E : B → Type ?u.9745
Z : Type u_3
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
⊢ x ∈ e.baseSet → (proj (↑(LocalEquiv.symm e.toLocalEquiv) (x, y)) ∈ s ↔ x ∈ s)

tactic: rw [e.proj_symm_apply' h]
state_before: case h.mk
ι : Type ?u.9734
B : Type u_1
F : Type u_2
E : B → Type ?u.9745
Z : Type u_3
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
h : x ∈ e.baseSet
⊢ proj (↑(LocalEquiv.symm e.toLocalEquiv) (x, y)) ∈ s ↔ x ∈ s

tactic: simpa only [prod_mk_mem_set_prod_eq, mem_inter_iff, and_true_iff, mem_univ, and_congr_left_iff]
state_before: ι : Type ?u.9734
B : Type u_1
F : Type u_2
E : B → Type ?u.9745
Z : Type u_3
inst✝¹ : TopologicalSpace B
inst✝ : TopologicalSpace F
proj : Z → B
e : Pretrivialization F proj
x✝ : Z
s : Set B
x : B
y : F
this : x ∈ e.baseSet → (proj (↑(LocalEquiv.symm e.toLocalEquiv) (x, y)) ∈ s ↔ x ∈ s)
⊢ (x, y) ∈ ↑(LocalEquiv.symm e.toLocalEquiv) ⁻¹' (proj ⁻¹' s) ∩ e.baseSet ×ˢ univ ↔ (x, y) ∈ (s ∩ e.baseSet) ×ˢ univ
Theorem: GeneralizedContinuedFraction.of_s_head
File: Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean

tactic: change (of v).s.get? 0 = _
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
h : fract v ≠ 0
⊢ Stream'.Seq.head (of v).s = some { a := 1, b := ↑⌊(fract v)⁻¹⌋ }

tactic: rw [of_s_head_aux, stream_succ_of_some (stream_zero v) h, Option.bind]
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
h : fract v ≠ 0
⊢ Stream'.Seq.get? (of v).s 0 = some { a := 1, b := ↑⌊(fract v)⁻¹⌋ }

tactic: rfl
state_before: K : Type u_1
inst✝¹ : LinearOrderedField K
inst✝ : FloorRing K
v : K
n : ℕ
h : fract v ≠ 0
⊢ (match some (IntFractPair.of (IntFractPair.of v).fr⁻¹), some ∘ fun p => { a := 1, b := ↑p.b } with
    | none, x => none
    | some a, b => b a) =
    some { a := 1, b := ↑⌊(fract v)⁻¹⌋ }
Theorem: gold_mul_goldConj
File: Mathlib/Data/Real/GoldenRatio.lean

tactic: field_simp
state_before: ⊢ φ * ψ = -1

tactic: rw [← sq_sub_sq]
state_before: ⊢ (1 + sqrt 5) * (1 - sqrt 5) = -(2 * 2)

tactic: norm_num
state_before: ⊢ 1 ^ 2 - sqrt 5 ^ 2 = -(2 * 2)
Theorem: PGame.neg_equiv_zero_iff
File: Mathlib/SetTheory/Game/PGame.lean

tactic: rw [neg_equiv_iff, neg_zero]
state_before: x : PGame
⊢ (-x ≈ 0) ↔ (x ≈ 0)
Theorem: Complex.abs_ofReal
File: Mathlib/Data/Complex/Basic.lean

tactic: simp [Complex.abs, normSq_ofReal, Real.sqrt_mul_self_eq_abs]
state_before: r : ℝ
⊢ ↑abs ↑r = Abs.abs r
Theorem: MulAction.stabilizer_quotient
File: Mathlib/GroupTheory/GroupAction/Quotient.lean

tactic: ext
state_before: α : Type u
β : Type v
γ : Type w
inst✝³ inst✝² : Group α
inst✝¹ : MulAction α β
x : β
G : Type u_1
inst✝ : Group G
H : Subgroup G
⊢ stabilizer G ↑1 = H

tactic: simp [QuotientGroup.eq]
state_before: case h
α : Type u
β : Type v
γ : Type w
inst✝³ inst✝² : Group α
inst✝¹ : MulAction α β
x : β
G : Type u_1
inst✝ : Group G
H : Subgroup G
x✝ : G
⊢ x✝ ∈ stabilizer G ↑1 ↔ x✝ ∈ H
Theorem: Cardinal.sum_le_iSup_lift
File: Mathlib/SetTheory/Cardinal/Basic.lean

tactic: rw [← (iSup f).lift_id, ← lift_umax, lift_umax.{max u v, u}, ← sum_const]
state_before: α β ι : Type u
f : ι → Cardinal
⊢ sum f ≤ lift (#ι) * iSup f

tactic: exact sum_le_sum _ _ (le_ciSup <| bddAbove_range.{u, v} f)
state_before: α β ι : Type u
f : ι → Cardinal
⊢ sum f ≤ sum fun x => iSup f
Theorem: ZMod.int_coe_zmod_eq_iff
File: Mathlib/Data/ZMod/Basic.lean

tactic: constructor
state_before: p : ℕ
n : ℤ
z : ZMod p
inst✝ : NeZero p
⊢ ↑n = z ↔ ∃ k, n = ↑(val z) + ↑p * k

tactic: rintro rfl
state_before: case mp
p : ℕ
n : ℤ
z : ZMod p
inst✝ : NeZero p
⊢ ↑n = z → ∃ k, n = ↑(val z) + ↑p * k

tactic: refine' ⟨n / p, _⟩
state_before: case mp
p : ℕ
n : ℤ
inst✝ : NeZero p
⊢ ∃ k, n = ↑(val ↑n) + ↑p * k

tactic: rw [val_int_cast, Int.emod_add_ediv]
state_before: case mp
p : ℕ
n : ℤ
inst✝ : NeZero p
⊢ n = ↑(val ↑n) + ↑p * (n / ↑p)

tactic: rintro ⟨k, rfl⟩
state_before: case mpr
p : ℕ
n : ℤ
z : ZMod p
inst✝ : NeZero p
⊢ (∃ k, n = ↑(val z) + ↑p * k) → ↑n = z

tactic: rw [Int.cast_add, Int.cast_mul, Int.cast_ofNat, Int.cast_ofNat, nat_cast_val,
  ZMod.nat_cast_self, MulZeroClass.zero_mul, add_zero, cast_id]
state_before: case mpr.intro
p : ℕ
z : ZMod p
inst✝ : NeZero p
k : ℤ
⊢ ↑(↑(val z) + ↑p * k) = z
Theorem: Inducing.nhdsSet_eq_comap
File: Mathlib/Topology/Maps.lean

tactic: simp only [nhdsSet, sSup_image, comap_iSup, hf.nhds_eq_comap, iSup_image]
state_before: α : Type u_1
β : Type u_2
γ : Type ?u.1466
δ : Type ?u.1469
inst✝³ : TopologicalSpace α
inst✝² : TopologicalSpace β
inst✝¹ : TopologicalSpace γ
inst✝ : TopologicalSpace δ
f : α → β
hf : Inducing f
s : Set α
⊢ 𝓝ˢ s = comap f (𝓝ˢ (f '' s))
Theorem: Matrix.fromBlocks_diagonal
File: Mathlib/Data/Matrix/Block.lean

tactic: ext i j
state_before: l : Type u_1
m : Type u_2
n : Type ?u.116901
o : Type ?u.116904
p : Type ?u.116907
q : Type ?u.116910
m' : o → Type ?u.116915
n' : o → Type ?u.116920
p' : o → Type ?u.116925
R : Type ?u.116928
S : Type ?u.116931
α : Type u_3
β : Type ?u.116937
inst✝² : DecidableEq l
inst✝¹ : DecidableEq m
inst✝ : Zero α
d₁ : l → α
d₂ : m → α
⊢ fromBlocks (diagonal d₁) 0 0 (diagonal d₂) = diagonal (Sum.elim d₁ d₂)

tactic: rcases i with ⟨⟩ <;> rcases j with ⟨⟩ <;> simp [diagonal]
state_before: case a.h
l : Type u_1
m : Type u_2
n : Type ?u.116901
o : Type ?u.116904
p : Type ?u.116907
q : Type ?u.116910
m' : o → Type ?u.116915
n' : o → Type ?u.116920
p' : o → Type ?u.116925
R : Type ?u.116928
S : Type ?u.116931
α : Type u_3
β : Type ?u.116937
inst✝² : DecidableEq l
inst✝¹ : DecidableEq m
inst✝ : Zero α
d₁ : l → α
d₂ : m → α
i j : l ⊕ m
⊢ fromBlocks (diagonal d₁) 0 0 (diagonal d₂) i j = diagonal (Sum.elim d₁ d₂) i j
Theorem: exists_square_le'
File: Mathlib/Algebra/Order/Ring/Lemmas.lean

tactic: obtain ha | ha := lt_or_le a 1
state_before: α : Type u_1
a b c d : α
inst✝³ : MulOneClass α
inst✝² : Zero α
inst✝¹ : LinearOrder α
inst✝ : PosMulStrictMono α
a0 : 0 < a
⊢ ∃ b, b * b ≤ a

tactic: exact ⟨a, (mul_lt_of_lt_one_right a0 ha).le⟩
state_before: case inl
α : Type u_1
a b c d : α
inst✝³ : MulOneClass α
inst✝² : Zero α
inst✝¹ : LinearOrder α
inst✝ : PosMulStrictMono α
a0 : 0 < a
ha : a < 1
⊢ ∃ b, b * b ≤ a

tactic: exact ⟨1, by rwa [mul_one]⟩
state_before: case inr
α : Type u_1
a b c d : α
inst✝³ : MulOneClass α
inst✝² : Zero α
inst✝¹ : LinearOrder α
inst✝ : PosMulStrictMono α
a0 : 0 < a
ha : 1 ≤ a
⊢ ∃ b, b * b ≤ a

tactic: rwa [mul_one]
state_before: α : Type u_1
a b c d : α
inst✝³ : MulOneClass α
inst✝² : Zero α
inst✝¹ : LinearOrder α
inst✝ : PosMulStrictMono α
a0 : 0 < a
ha : 1 ≤ a
⊢ 1 * 1 ≤ a
Theorem: intervalIntegral.integral_deriv_comp_smul_deriv'
File: Mathlib/MeasureTheory/Integral/FundThmCalculus.lean

tactic: rw [integral_comp_smul_deriv'' hf hff' hf' hg',
  integral_eq_sub_of_hasDeriv_right hg hgg' (hg'.mono _).intervalIntegrable]
state_before: ι : Type ?u.1918101
𝕜 : Type ?u.1918104
E : Type u_1
F : Type ?u.1918110
A : Type ?u.1918113
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝¹ : ℝ → E
g'✝ g✝ φ : ℝ → ℝ
f✝ f'✝ : ℝ → E
a b : ℝ
f f' : ℝ → ℝ
g g' : ℝ → E
hf : ContinuousOn f [[a, b]]
hff' : ∀ (x : ℝ), x ∈ Ioo (min a b) (max a b) → HasDerivWithinAt f (f' x) (Ioi x) x
hf' : ContinuousOn f' [[a, b]]
hg : ContinuousOn g [[f a, f b]]
hgg' : ∀ (x : ℝ), x ∈ Ioo (min (f a) (f b)) (max (f a) (f b)) → HasDerivWithinAt g (g' x) (Ioi x) x
hg' : ContinuousOn g' (f '' [[a, b]])
⊢ (∫ (x : ℝ) in a..b, f' x • (g' ∘ f) x) = (g ∘ f) b - (g ∘ f) a

tactic: exacts [rfl, intermediate_value_uIcc hf]
state_before: ι : Type ?u.1918101
𝕜 : Type ?u.1918104
E : Type u_1
F : Type ?u.1918110
A : Type ?u.1918113
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝¹ : ℝ → E
g'✝ g✝ φ : ℝ → ℝ
f✝ f'✝ : ℝ → E
a b : ℝ
f f' : ℝ → ℝ
g g' : ℝ → E
hf : ContinuousOn f [[a, b]]
hff' : ∀ (x : ℝ), x ∈ Ioo (min a b) (max a b) → HasDerivWithinAt f (f' x) (Ioi x) x
hf' : ContinuousOn f' [[a, b]]
hg : ContinuousOn g [[f a, f b]]
hgg' : ∀ (x : ℝ), x ∈ Ioo (min (f a) (f b)) (max (f a) (f b)) → HasDerivWithinAt g (g' x) (Ioi x) x
hg' : ContinuousOn g' (f '' [[a, b]])
⊢ g (f b) - g (f a) = (g ∘ f) b - (g ∘ f) a

ι : Type ?u.1918101
𝕜 : Type ?u.1918104
E : Type u_1
F : Type ?u.1918110
A : Type ?u.1918113
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
f✝¹ : ℝ → E
g'✝ g✝ φ : ℝ → ℝ
f✝ f'✝ : ℝ → E
a b : ℝ
f f' : ℝ → ℝ
g g' : ℝ → E
hf : ContinuousOn f [[a, b]]
hff' : ∀ (x : ℝ), x ∈ Ioo (min a b) (max a b) → HasDerivWithinAt f (f' x) (Ioi x) x
hf' : ContinuousOn f' [[a, b]]
hg : ContinuousOn g [[f a, f b]]
hgg' : ∀ (x : ℝ), x ∈ Ioo (min (f a) (f b)) (max (f a) (f b)) → HasDerivWithinAt g (g' x) (Ioi x) x
hg' : ContinuousOn g' (f '' [[a, b]])
⊢ [[f a, f b]] ⊆ f '' [[a, b]]
Theorem: toIocMod_sub_eq_sub
File: Mathlib/Algebra/Order/ToIntervalMod.lean

tactic: simp_rw [toIocMod, toIocDiv_sub_eq_toIocDiv_add, sub_right_comm]
state_before: α : Type u_1
inst✝ : LinearOrderedAddCommGroup α
hα : Archimedean α
p : α
hp : 0 < p
a✝ b✝ c✝ : α
n : ℤ
a b c : α
⊢ toIocMod hp a (b - c) = toIocMod hp (a + c) b - c