tasksource/leandojo huggingface dataset:
Theorem: FirstOrder.Language.LHom.id_onBoundedFormula
File: Mathlib/ModelTheory/Syntax.lean

tactic: ext f
state_before: L : Language
L' : Language
M : Type w
N : Type ?u.143751
P : Type ?u.143754
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.143782
n : ℕ
⊢ onBoundedFormula (LHom.id L) = id

tactic: induction' f with _ _ _ _ _ _ _ _ _ _ _ ih1 ih2 _ _ ih3
state_before: case h
L : Language
L' : Language
M : Type w
N : Type ?u.143751
P : Type ?u.143754
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.143782
n : ℕ
f : BoundedFormula L α n
⊢ onBoundedFormula (LHom.id L) f = id f

tactic: rfl
state_before: case h.falsum
L : Language
L' : Language
M : Type w
N : Type ?u.143751
P : Type ?u.143754
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.143782
n n✝ : ℕ
⊢ onBoundedFormula (LHom.id L) falsum = id falsum

tactic: rw [onBoundedFormula, LHom.id_onTerm, id.def, id.def, id.def, Term.bdEqual]
state_before: case h.equal
L : Language
L' : Language
M : Type w
N : Type ?u.143751
P : Type ?u.143754
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.143782
n n✝ : ℕ
t₁✝ t₂✝ : Term L (α ⊕ Fin n✝)
⊢ onBoundedFormula (LHom.id L) (equal t₁✝ t₂✝) = id (equal t₁✝ t₂✝)

tactic: rw [onBoundedFormula, LHom.id_onTerm]
state_before: case h.rel
L : Language
L' : Language
M : Type w
N : Type ?u.143751
P : Type ?u.143754
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.143782
n n✝ l✝ : ℕ
R✝ : Relations L l✝
ts✝ : Fin l✝ → Term L (α ⊕ Fin n✝)
⊢ onBoundedFormula (LHom.id L) (rel R✝ ts✝) = id (rel R✝ ts✝)

tactic: rfl
state_before: case h.rel
L : Language
L' : Language
M : Type w
N : Type ?u.143751
P : Type ?u.143754
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.143782
n n✝ l✝ : ℕ
R✝ : Relations L l✝
ts✝ : Fin l✝ → Term L (α ⊕ Fin n✝)
⊢ Relations.boundedFormula (onRelation (LHom.id L) R✝) (id ∘ ts✝) = id (rel R✝ ts✝)

tactic: rw [onBoundedFormula, ih1, ih2, id.def, id.def, id.def]
state_before: case h.imp
L : Language
L' : Language
M : Type w
N : Type ?u.143751
P : Type ?u.143754
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.143782
n n✝ : ℕ
f₁✝ f₂✝ : BoundedFormula L α n✝
ih1 : onBoundedFormula (LHom.id L) f₁✝ = id f₁✝
ih2 : onBoundedFormula (LHom.id L) f₂✝ = id f₂✝
⊢ onBoundedFormula (LHom.id L) (imp f₁✝ f₂✝) = id (imp f₁✝ f₂✝)

tactic: rw [onBoundedFormula, ih3, id.def, id.def]
state_before: case h.all
L : Language
L' : Language
M : Type w
N : Type ?u.143751
P : Type ?u.143754
inst✝² : Structure L M
inst✝¹ : Structure L N
inst✝ : Structure L P
α : Type u'
β : Type v'
γ : Type ?u.143782
n n✝ : ℕ
f✝ : BoundedFormula L α (n✝ + 1)
ih3 : onBoundedFormula (LHom.id L) f✝ = id f✝
⊢ onBoundedFormula (LHom.id L) (all f✝) = id (all f✝)
Theorem: Ordnode.dual_insert
File: Mathlib/Data/Ordmap/Ordset.lean

tactic: have : @cmpLE αᵒᵈ _ _ x y = cmpLE y x := rfl
state_before: α : Type u_1
inst✝² : Preorder α
inst✝¹ : IsTotal α fun x x_1 => x ≤ x_1
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
x : α
size✝ : ℕ
l : Ordnode α
y : α
r : Ordnode α
⊢ dual (Ordnode.insert x (node size✝ l y r)) = Ordnode.insert x (dual (node size✝ l y r))

tactic: rw [Ordnode.insert, dual, Ordnode.insert, this, ← cmpLE_swap x y]
state_before: α : Type u_1
inst✝² : Preorder α
inst✝¹ : IsTotal α fun x x_1 => x ≤ x_1
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
x : α
size✝ : ℕ
l : Ordnode α
y : α
r : Ordnode α
this : cmpLE x y = cmpLE y x
⊢ dual (Ordnode.insert x (node size✝ l y r)) = Ordnode.insert x (dual (node size✝ l y r))

tactic: cases cmpLE x y <;>
  simp [Ordering.swap, Ordnode.insert, dual_balanceL, dual_balanceR, dual_insert]
state_before: α : Type u_1
inst✝² : Preorder α
inst✝¹ : IsTotal α fun x x_1 => x ≤ x_1
inst✝ : DecidableRel fun x x_1 => x ≤ x_1
x : α
size✝ : ℕ
l : Ordnode α
y : α
r : Ordnode α
this : cmpLE x y = cmpLE y x
⊢ dual
      (match cmpLE x y with
      | Ordering.lt => balanceL (Ordnode.insert x l) y r
      | Ordering.eq => node size✝ l x r
      | Ordering.gt => balanceR l y (Ordnode.insert x r)) =
    match Ordering.swap (cmpLE x y) with
    | Ordering.lt => balanceL (Ordnode.insert x (dual r)) y (dual l)
    | Ordering.eq => node size✝ (dual r) x (dual l)
    | Ordering.gt => balanceR (dual r) y (Ordnode.insert x (dual l))
Theorem: Set.image_preimage_eq_iff
File: Mathlib/Data/Set/Image.lean

tactic: intro h
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.74585
ι : Sort ?u.74588
ι' : Sort ?u.74591
f✝ : ι → α
s✝ t : Set α
f : α → β
s : Set β
⊢ f '' (f ⁻¹' s) = s → s ⊆ range f

tactic: rw [← h]
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.74585
ι : Sort ?u.74588
ι' : Sort ?u.74591
f✝ : ι → α
s✝ t : Set α
f : α → β
s : Set β
h : f '' (f ⁻¹' s) = s
⊢ s ⊆ range f

tactic: apply image_subset_range
state_before: α : Type u_2
β : Type u_1
γ : Type ?u.74585
ι : Sort ?u.74588
ι' : Sort ?u.74591
f✝ : ι → α
s✝ t : Set α
f : α → β
s : Set β
h : f '' (f ⁻¹' s) = s
⊢ f '' (f ⁻¹' s) ⊆ range f
Theorem: NNReal.mul_iInf
File: Mathlib/Data/Real/NNReal.lean

tactic: simpa only [mul_comm] using iInf_mul f a
state_before: ι : Sort u_1
f✝ f : ι → ℝ≥0
a : ℝ≥0
⊢ a * iInf f = ⨅ (i : ι), a * f i
Theorem: Finset.image_add_right_Ioc
File: Mathlib/Data/Finset/LocallyFinite.lean

tactic: rw [← map_add_right_Ioc, map_eq_image]
state_before: ι : Type ?u.250798
α : Type u_1
inst✝³ : OrderedCancelAddCommMonoid α
inst✝² : ExistsAddOfLE α
inst✝¹ : LocallyFiniteOrder α
inst✝ : DecidableEq α
a b c : α
⊢ image (fun x => x + c) (Ioc a b) = Ioc (a + c) (b + c)

tactic: rfl
state_before: ι : Type ?u.250798
α : Type u_1
inst✝³ : OrderedCancelAddCommMonoid α
inst✝² : ExistsAddOfLE α
inst✝¹ : LocallyFiniteOrder α
inst✝ : DecidableEq α
a b c : α
⊢ image (fun x => x + c) (Ioc a b) = image (↑(addRightEmbedding c)) (Ioc a b)
Theorem: Submodule.FG.pow
File: Mathlib/RingTheory/Finiteness.lean

tactic: simp [one_eq_span]
state_before: R : Type u_1
A : Type u_2
inst✝² : CommSemiring R
inst✝¹ : Semiring A
inst✝ : Algebra R A
M N : Submodule R A
h : FG M
n : ℕ
⊢ span R ↑{1} = M ^ Nat.zero

tactic: simpa [pow_succ] using h.mul ih
state_before: R : Type u_1
A : Type u_2
inst✝² : CommSemiring R
inst✝¹ : Semiring A
inst✝ : Algebra R A
M N : Submodule R A
h : FG M
n✝ n : ℕ
ih : FG (M ^ n)
⊢ FG (M ^ Nat.succ n)
Theorem: manyOneEquiv_toNat
File: Mathlib/Computability/Reduce.lean

tactic: simp [ManyOneEquiv]
state_before: α : Type u
inst✝⁵ : Primcodable α
inst✝⁴ : Inhabited α
β : Type v
inst✝³ : Primcodable β
inst✝² : Inhabited β
γ : Type w
inst✝¹ : Primcodable γ
inst✝ : Inhabited γ
p : Set α
q : Set β
⊢ ManyOneEquiv (toNat p) (toNat q) ↔ ManyOneEquiv p q
Theorem: Finite.card_le_one_iff_subsingleton
File: Mathlib/Data/Finite/Card.lean

tactic: haveI := Fintype.ofFinite α
state_before: α : Type u_1
β : Type ?u.1557
γ : Type ?u.1560
inst✝ : Finite α
⊢ Nat.card α ≤ 1 ↔ Subsingleton α

tactic: simp only [Nat.card_eq_fintype_card, Fintype.card_le_one_iff_subsingleton]
state_before: α : Type u_1
β : Type ?u.1557
γ : Type ?u.1560
inst✝ : Finite α
this : Fintype α
⊢ Nat.card α ≤ 1 ↔ Subsingleton α
Theorem: Int.div_neg
File: Std/Data/Int/DivMod.lean

tactic: rw [Nat.div_zero]
state_before: m : Nat
⊢ ofNat (m / 0) = -↑(m / 0)

tactic: rfl
state_before: m : Nat
⊢ ofNat 0 = -↑0
Theorem: Int.sq_ne_two_mod_four
File: Mathlib/NumberTheory/PythagoreanTriples.lean

tactic: suffices ¬z * z % (4 : ℕ) = 2 % (4 : ℕ) by exact this
state_before: z : ℤ
⊢ z * z % 4 ≠ 2

tactic: rw [← ZMod.int_cast_eq_int_cast_iff']
state_before: z : ℤ
⊢ ¬z * z % ↑4 = 2 % ↑4

tactic: simpa using sq_ne_two_fin_zmod_four _
state_before: z : ℤ
⊢ ¬↑(z * z) = ↑2

tactic: exact this
state_before: z : ℤ
this : ¬z * z % ↑4 = 2 % ↑4
⊢ z * z % 4 ≠ 2
Theorem: intervalIntegral.integral_comp_sub_div
File: Mathlib/MeasureTheory/Integral/IntervalIntegral.lean

tactic: simpa only [div_eq_inv_mul, inv_inv] using integral_comp_sub_mul f (inv_ne_zero hc) d
state_before: ι : Type ?u.14946556
𝕜 : Type ?u.14946559
E : Type u_1
F : Type ?u.14946565
A : Type ?u.14946568
inst✝² : NormedAddCommGroup E
inst✝¹ : CompleteSpace E
inst✝ : NormedSpace ℝ E
a b c d✝ : ℝ
f : ℝ → E
hc : c ≠ 0
d : ℝ
⊢ (∫ (x : ℝ) in a..b, f (d - x / c)) = c • ∫ (x : ℝ) in d - b / c..d - a / c, f x
Theorem: Real.mk_add
File: Mathlib/Data/Real/Basic.lean

tactic: simp [mk, ← ofCauchy_add]
state_before: x y : ℝ
f g : CauSeq ℚ abs
⊢ mk (f + g) = mk f + mk g
Theorem: MeasureTheory.Lp.ext_iff
File: Mathlib/MeasureTheory/Function/LpSpace.lean

tactic: rw [h]
state_before: α : Type u_1
E : Type u_2
F : Type ?u.359353
G : Type ?u.359356
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f g : { x // x ∈ Lp E p }
h : f = g
⊢ ↑↑f =ᵐ[μ] ↑↑g
Theorem: Multiset.coe_count
File: Mathlib/Data/Multiset/Basic.lean

tactic: rfl
state_before: α : Type u_1
β : Type ?u.349078
γ : Type ?u.349081
inst✝ : DecidableEq α
a : α
l : List α
⊢ List.countp (fun b => decide (b = a)) l = List.countp (fun x => x == a) l
Theorem: Int.cofinite_eq
File: Mathlib/Topology/Instances/Int.lean

tactic: rw [← cocompact_eq_cofinite, cocompact_eq]
state_before: ⊢ cofinite = atBot ⊔ atTop
Theorem: WeakDual.CharacterSpace.union_zero
File: Mathlib/Topology/Algebra/Module/CharacterSpace.lean

tactic: rintro φ (hφ | rfl)
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁶ : CommSemiring 𝕜
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : ContinuousAdd 𝕜
inst✝³ : ContinuousConstSMul 𝕜 𝕜
inst✝² : NonUnitalNonAssocSemiring A
inst✝¹ : TopologicalSpace A
inst✝ : Module 𝕜 A
⊢ characterSpace 𝕜 A ∪ {0} ≤ {φ | ∀ (x y : A), ↑φ (x * y) = ↑φ x * ↑φ y}

tactic: exact hφ.2
state_before: case inl
𝕜 : Type u_1
A : Type u_2
inst✝⁶ : CommSemiring 𝕜
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : ContinuousAdd 𝕜
inst✝³ : ContinuousConstSMul 𝕜 𝕜
inst✝² : NonUnitalNonAssocSemiring A
inst✝¹ : TopologicalSpace A
inst✝ : Module 𝕜 A
φ : WeakDual 𝕜 A
hφ : φ ∈ characterSpace 𝕜 A
⊢ φ ∈ {φ | ∀ (x y : A), ↑φ (x * y) = ↑φ x * ↑φ y}

tactic: exact fun _ _ => by exact (zero_mul (0 : 𝕜)).symm
state_before: case inr
𝕜 : Type u_1
A : Type u_2
inst✝⁶ : CommSemiring 𝕜
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : ContinuousAdd 𝕜
inst✝³ : ContinuousConstSMul 𝕜 𝕜
inst✝² : NonUnitalNonAssocSemiring A
inst✝¹ : TopologicalSpace A
inst✝ : Module 𝕜 A
⊢ 0 ∈ {φ | ∀ (x y : A), ↑φ (x * y) = ↑φ x * ↑φ y}

tactic: exact (zero_mul (0 : 𝕜)).symm
state_before: 𝕜 : Type u_1
A : Type u_2
inst✝⁶ : CommSemiring 𝕜
inst✝⁵ : TopologicalSpace 𝕜
inst✝⁴ : ContinuousAdd 𝕜
inst✝³ : ContinuousConstSMul 𝕜 𝕜
inst✝² : NonUnitalNonAssocSemiring A
inst✝¹ : TopologicalSpace A
inst✝ : Module 𝕜 A
x✝¹ x✝ : A
⊢ ↑0 (x✝¹ * x✝) = ↑0 x✝¹ * ↑0 x✝
Theorem: Holor.holor_index_cons_decomp
File: Mathlib/Data/Holor.lean

tactic: rw [← h]
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
p : HolorIndex (d :: ds) → Prop
t : HolorIndex (d :: ds)
i : ℕ
is : List ℕ
h : ↑t = i :: is
⊢ Forall₂ (fun x x_1 => x < x_1) (i :: is) (d :: ds)

tactic: exact t.2
state_before: α : Type
d : ℕ
ds ds₁ ds₂ ds₃ : List ℕ
p : HolorIndex (d :: ds) → Prop
t : HolorIndex (d :: ds)
i : ℕ
is : List ℕ
h : ↑t = i :: is
⊢ Forall₂ (fun x x_1 => x < x_1) (↑t) (d :: ds)
Theorem: Set.ncard_inter_add_ncard_union
File: Mathlib/Data/Set/Ncard.lean

tactic: rw [add_comm, ncard_union_add_ncard_inter _ _ hs ht]
state_before: α : Type u_1
β : Type ?u.120169
s✝ t✝ : Set α
a b x y : α
f : α → β
s t : Set α
hs : autoParam (Set.Finite s) _auto✝
ht : autoParam (Set.Finite t) _auto✝
⊢ ncard (s ∩ t) + ncard (s ∪ t) = ncard s + ncard t
Theorem: Nat.add_pos_iff_pos_or_pos
File: Mathlib/Data/Nat/Order/Basic.lean

tactic: intro h
state_before: m✝ n✝ k l m n : ℕ
⊢ 0 < m + n → 0 < m ∨ 0 < n

tactic: cases' m with m
state_before: m✝ n✝ k l m n : ℕ
h : 0 < m + n
⊢ 0 < m ∨ 0 < n

tactic: exact Or.inl (succ_pos _)
state_before: case succ
m✝ n✝ k l n m : ℕ
h : 0 < succ m + n
⊢ 0 < succ m ∨ 0 < n

tactic: simp [zero_add] at h
state_before: case zero
m n✝ k l n : ℕ
h : 0 < zero + n
⊢ 0 < zero ∨ 0 < n

tactic: exact Or.inr h
state_before: case zero
m n✝ k l n : ℕ
h : 0 < n
⊢ 0 < zero ∨ 0 < n

tactic: intro h
state_before: m✝ n✝ k l m n : ℕ
⊢ 0 < m ∨ 0 < n → 0 < m + n

tactic: cases' h with mpos npos
state_before: m✝ n✝ k l m n : ℕ
h : 0 < m ∨ 0 < n
⊢ 0 < m + n

tactic: apply add_pos_right _ npos
state_before: case inr
m✝ n✝ k l m n : ℕ
npos : 0 < n
⊢ 0 < m + n

tactic: apply add_pos_left mpos
state_before: case inl
m✝ n✝ k l m n : ℕ
mpos : 0 < m
⊢ 0 < m + n
Theorem: ENNReal.tendsto_nhds_top_iff_nnreal
File: Mathlib/Topology/Instances/ENNReal.lean

tactic: simp only [nhds_top', tendsto_iInf, tendsto_principal, mem_Ioi]
state_before: α : Type u_1
β : Type ?u.39319
γ : Type ?u.39322
a b c d : ℝ≥0∞
r p q : ℝ≥0
x y z ε ε₁ ε₂ : ℝ≥0∞
s : Set ℝ≥0∞
m : α → ℝ≥0∞
f : Filter α
⊢ Tendsto m f (𝓝 ⊤) ↔ ∀ (x : ℝ≥0), ∀ᶠ (a : α) in f, ↑x < m a
Theorem: Orientation.volumeForm_robust
File: Mathlib/Analysis/InnerProductSpace/Orientation.lean

tactic: cases n
state_before: E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
n : ℕ
_i : Fact (finrank ℝ E = n)
o : Orientation ℝ E (Fin n)
b : OrthonormalBasis (Fin n) ℝ E
hb : Basis.orientation (OrthonormalBasis.toBasis b) = o
⊢ volumeForm o = Basis.det (OrthonormalBasis.toBasis b)

tactic: classical
  have : o = positiveOrientation := hb.symm.trans b.toBasis.orientation_isEmpty
  simp_rw [volumeForm, Or.by_cases, dif_pos this, Basis.det_isEmpty]
state_before: case zero
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
_i : Fact (finrank ℝ E = Nat.zero)
o : Orientation ℝ E (Fin Nat.zero)
b : OrthonormalBasis (Fin Nat.zero) ℝ E
hb : Basis.orientation (OrthonormalBasis.toBasis b) = o
⊢ volumeForm o = Basis.det (OrthonormalBasis.toBasis b)

tactic: have : o = positiveOrientation := hb.symm.trans b.toBasis.orientation_isEmpty
state_before: case zero
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
_i : Fact (finrank ℝ E = Nat.zero)
o : Orientation ℝ E (Fin Nat.zero)
b : OrthonormalBasis (Fin Nat.zero) ℝ E
hb : Basis.orientation (OrthonormalBasis.toBasis b) = o
⊢ volumeForm o = Basis.det (OrthonormalBasis.toBasis b)

tactic: simp_rw [volumeForm, Or.by_cases, dif_pos this, Basis.det_isEmpty]
state_before: case zero
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
_i : Fact (finrank ℝ E = Nat.zero)
o : Orientation ℝ E (Fin Nat.zero)
b : OrthonormalBasis (Fin Nat.zero) ℝ E
hb : Basis.orientation (OrthonormalBasis.toBasis b) = o
this : o = positiveOrientation
⊢ volumeForm o = Basis.det (OrthonormalBasis.toBasis b)

tactic: simp_rw [volumeForm]
state_before: case succ
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
n✝ : ℕ
_i : Fact (finrank ℝ E = Nat.succ n✝)
o : Orientation ℝ E (Fin (Nat.succ n✝))
b : OrthonormalBasis (Fin (Nat.succ n✝)) ℝ E
hb : Basis.orientation (OrthonormalBasis.toBasis b) = o
⊢ volumeForm o = Basis.det (OrthonormalBasis.toBasis b)

tactic: rw [same_orientation_iff_det_eq_det, hb]
state_before: case succ
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
n✝ : ℕ
_i : Fact (finrank ℝ E = Nat.succ n✝)
o : Orientation ℝ E (Fin (Nat.succ n✝))
b : OrthonormalBasis (Fin (Nat.succ n✝)) ℝ E
hb : Basis.orientation (OrthonormalBasis.toBasis b) = o
⊢ Basis.det
      (OrthonormalBasis.toBasis
        (Orientation.finOrthonormalBasis (_ : 0 < Nat.succ n✝) (_ : finrank ℝ E = Nat.succ n✝) o)) =
    Basis.det (OrthonormalBasis.toBasis b)

tactic: exact o.finOrthonormalBasis_orientation _ _
state_before: case succ
E : Type u_1
inst✝¹ : NormedAddCommGroup E
inst✝ : InnerProductSpace ℝ E
n✝ : ℕ
_i : Fact (finrank ℝ E = Nat.succ n✝)
o : Orientation ℝ E (Fin (Nat.succ n✝))
b : OrthonormalBasis (Fin (Nat.succ n✝)) ℝ E
hb : Basis.orientation (OrthonormalBasis.toBasis b) = o
⊢ Basis.orientation
      (OrthonormalBasis.toBasis
        (Orientation.finOrthonormalBasis (_ : 0 < Nat.succ n✝) (_ : finrank ℝ E = Nat.succ n✝) o)) =
    o
Theorem: Encodable.decode_ofEquiv
File: Mathlib/Logic/Encodable/Basic.lean

tactic: rw [Option.map_eq_bind]
state_before: α✝ : Type ?u.1896
β✝ : Type ?u.1899
α : Type u_1
β : Type u_2
inst✝ : Encodable α
e : β ≃ α
n : ℕ
⊢ Option.bind (decode n) (some ∘ ↑e.symm) = Option.map (↑e.symm) (decode n)
Theorem: List.init_eq_of_concat_eq
File: Mathlib/Data/List/Basic.lean

tactic: intro h
state_before: ι : Type ?u.24511
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁✝ l₂✝ : List α
a : α
l₁ l₂ : List α
⊢ concat l₁ a = concat l₂ a → l₁ = l₂

tactic: rw [concat_eq_append, concat_eq_append] at h
state_before: ι : Type ?u.24511
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁✝ l₂✝ : List α
a : α
l₁ l₂ : List α
h : concat l₁ a = concat l₂ a
⊢ l₁ = l₂

tactic: exact append_right_cancel h
state_before: ι : Type ?u.24511
α : Type u
β : Type v
γ : Type w
δ : Type x
l₁✝ l₂✝ : List α
a : α
l₁ l₂ : List α
h : l₁ ++ [a] = l₂ ++ [a]
⊢ l₁ = l₂
Theorem: CategoryTheory.Limits.biproduct.map_desc
File: Mathlib/CategoryTheory/Limits/Shapes/Biproducts.lean

tactic: ext
state_before: J : Type w
C : Type u
inst✝³ : Category C
inst✝² : HasZeroMorphisms C
f g : J → C
inst✝¹ : HasBiproduct f
inst✝ : HasBiproduct g
p : (j : J) → f j ⟶ g j
P : C
k : (j : J) → g j ⟶ P
⊢ map p ≫ desc k = desc fun j => p j ≫ k j

tactic: simp
state_before: case w
J : Type w
C : Type u
inst✝³ : Category C
inst✝² : HasZeroMorphisms C
f g : J → C
inst✝¹ : HasBiproduct f
inst✝ : HasBiproduct g
p : (j : J) → f j ⟶ g j
P : C
k : (j : J) → g j ⟶ P
j✝ : J
⊢ ι (fun b => f b) j✝ ≫ map p ≫ desc k = ι (fun b => f b) j✝ ≫ desc fun j => p j ≫ k j
Theorem: Real.sin_sq_pi_over_two_pow_succ
File: Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean

tactic: rw [sin_sq_pi_over_two_pow, sqrtTwoAddSeries, div_pow, sq_sqrt, add_div, ← sub_sub]
state_before: x : ℝ
n : ℕ
⊢ sin (π / 2 ^ (n + 2)) ^ 2 = 1 / 2 - sqrtTwoAddSeries 0 n / 4

tactic: congr
state_before: x : ℝ
n : ℕ
⊢ 1 - 2 / 2 ^ 2 - sqrtTwoAddSeries 0 n / 2 ^ 2 = 1 / 2 - sqrtTwoAddSeries 0 n / 4

x : ℝ
n : ℕ
⊢ 0 ≤ 2 + sqrtTwoAddSeries 0 n

tactic: norm_num
state_before: case e_a
x : ℝ
n : ℕ
⊢ 1 - 2 / 2 ^ 2 = 1 / 2

case e_a.e_a
x : ℝ
n : ℕ
⊢ 2 ^ 2 = 4

x : ℝ
n : ℕ
⊢ 0 ≤ 2 + sqrtTwoAddSeries 0 n

tactic: norm_num
state_before: case e_a.e_a
x : ℝ
n : ℕ
⊢ 2 ^ 2 = 4

x : ℝ
n : ℕ
⊢ 0 ≤ 2 + sqrtTwoAddSeries 0 n

tactic: apply add_nonneg
state_before: x : ℝ
n : ℕ
⊢ 0 ≤ 2 + sqrtTwoAddSeries 0 n

tactic: norm_num
state_before: case ha
x : ℝ
n : ℕ
⊢ 0 ≤ 2

case hb
x : ℝ
n : ℕ
⊢ 0 ≤ sqrtTwoAddSeries 0 n

tactic: apply sqrtTwoAddSeries_zero_nonneg
state_before: case hb
x : ℝ
n : ℕ
⊢ 0 ≤ sqrtTwoAddSeries 0 n
Theorem: MeasureTheory.snorm_le_of_ae_bound
File: Mathlib/MeasureTheory/Function/LpSeminorm.lean

tactic: rw [← mul_comm]
state_before: α : Type u_1
E : Type ?u.1517887
F : Type u_2
G : Type ?u.1517893
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ C
⊢ snorm f p μ ≤ ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹ * ENNReal.ofReal C

tactic: exact snorm_le_of_ae_nnnorm_bound (hfC.mono fun x hx => hx.trans C.le_coe_toNNReal)
state_before: α : Type u_1
E : Type ?u.1517887
F : Type u_2
G : Type ?u.1517893
m m0 : MeasurableSpace α
p : ℝ≥0∞
q : ℝ
μ ν : Measure α
inst✝² : NormedAddCommGroup E
inst✝¹ : NormedAddCommGroup F
inst✝ : NormedAddCommGroup G
f : α → F
C : ℝ
hfC : ∀ᵐ (x : α) ∂μ, ‖f x‖ ≤ C
⊢ snorm f p μ ≤ ENNReal.ofReal C * ↑↑μ Set.univ ^ (ENNReal.toReal p)⁻¹
Theorem: Finset.sorted_last_eq_max'_aux
File: Mathlib/Data/Finset/Sort.lean

tactic: apply le_antisymm
state_before: α : Type u_1
β : Type ?u.15918
inst✝ : LinearOrder α
s : Finset α
h : List.length (sort (fun x x_1 => x ≤ x_1) s) - 1 < List.length (sort (fun x x_1 => x ≤ x_1) s)
H : Finset.Nonempty s
l : List α := sort (fun x x_1 => x ≤ x_1) s
⊢ List.nthLe (sort (fun x x_1 => x ≤ x_1) s) (List.length (sort (fun x x_1 => x ≤ x_1) s) - 1) h = max' s H

tactic: exact s.le_max' _ this
state_before: case a
α : Type u_1
β : Type ?u.15918
inst✝ : LinearOrder α
s : Finset α
h : List.length (sort (fun x x_1 => x ≤ x_1) s) - 1 < List.length (sort (fun x x_1 => x ≤ x_1) s)
H : Finset.Nonempty s
l : List α := sort (fun x x_1 => x ≤ x_1) s
this : List.get l { val := List.length (sort (fun x x_1 => x ≤ x_1) s) - 1, isLt := h } ∈ s
⊢ List.nthLe (sort (fun x x_1 => x ≤ x_1) s) (List.length (sort (fun x x_1 => x ≤ x_1) s) - 1) h ≤ max' s H

tactic: obtain ⟨i, hi⟩ : ∃ i, l.get i = s.max' H := List.mem_iff_get.1 this
state_before: case a
α : Type u_1
β : Type ?u.15918
inst✝ : LinearOrder α
s : Finset α
h : List.length (sort (fun x x_1 => x ≤ x_1) s) - 1 < List.length (sort (fun x x_1 => x ≤ x_1) s)
H : Finset.Nonempty s
l : List α := sort (fun x x_1 => x ≤ x_1) s
this : max' s H ∈ l
⊢ max' s H ≤ List.nthLe (sort (fun x x_1 => x ≤ x_1) s) (List.length (sort (fun x x_1 => x ≤ x_1) s) - 1) h

tactic: rw [← hi]
state_before: case a.intro
α : Type u_1
β : Type ?u.15918
inst✝ : LinearOrder α
s : Finset α
h : List.length (sort (fun x x_1 => x ≤ x_1) s) - 1 < List.length (sort (fun x x_1 => x ≤ x_1) s)
H : Finset.Nonempty s
l : List α := sort (fun x x_1 => x ≤ x_1) s
this : max' s H ∈ l
i : Fin (List.length l)
hi : List.get l i = max' s H
⊢ max' s H ≤ List.nthLe (sort (fun x x_1 => x ≤ x_1) s) (List.length (sort (fun x x_1 => x ≤ x_1) s) - 1) h
Theorem: MeasureTheory.measurePreserving_piFinTwo
File: Mathlib/MeasureTheory/Constructions/Pi.lean

tactic: refine' ⟨MeasurableEquiv.measurable _, (Measure.prod_eq fun s t _ _ => _).symm⟩
state_before: ι : Type ?u.5928630
ι' : Type ?u.5928633
α✝ : ι → Type ?u.5928638
inst✝¹ : Fintype ι
m✝ : (i : ι) → OuterMeasure (α✝ i)
α : Fin 2 → Type u
m : (i : Fin 2) → MeasurableSpace (α i)
μ : (i : Fin 2) → Measure (α i)
inst✝ : ∀ (i : Fin 2), SigmaFinite (μ i)
⊢ MeasurePreserving ↑(MeasurableEquiv.piFinTwo α)

tactic: rw [MeasurableEquiv.map_apply, MeasurableEquiv.piFinTwo_apply, Fin.preimage_apply_01_prod,
  Measure.pi_pi, Fin.prod_univ_two]
state_before: ι : Type ?u.5928630
ι' : Type ?u.5928633
α✝ : ι → Type ?u.5928638
inst✝¹ : Fintype ι
m✝ : (i : ι) → OuterMeasure (α✝ i)
α : Fin 2 → Type u
m : (i : Fin 2) → MeasurableSpace (α i)
μ : (i : Fin 2) → Measure (α i)
inst✝ : ∀ (i : Fin 2), SigmaFinite (μ i)
s : Set (α 0)
t : Set (α 1)
x✝¹ : MeasurableSet s
x✝ : MeasurableSet t
⊢ ↑↑(Measure.map (↑(MeasurableEquiv.piFinTwo α)) (Measure.pi μ)) (s ×ˢ t) = ↑↑(μ 0) s * ↑↑(μ 1) t

tactic: rfl
state_before: ι : Type ?u.5928630
ι' : Type ?u.5928633
α✝ : ι → Type ?u.5928638
inst✝¹ : Fintype ι
m✝ : (i : ι) → OuterMeasure (α✝ i)
α : Fin 2 → Type u
m : (i : Fin 2) → MeasurableSpace (α i)
μ : (i : Fin 2) → Measure (α i)
inst✝ : ∀ (i : Fin 2), SigmaFinite (μ i)
s : Set (α 0)
t : Set (α 1)
x✝¹ : MeasurableSet s
x✝ : MeasurableSet t
⊢ ↑↑(μ 0) (Fin.cons s (Fin.cons t finZeroElim) 0) * ↑↑(μ 1) (Fin.cons s (Fin.cons t finZeroElim) 1) =
    ↑↑(μ 0) s * ↑↑(μ 1) t
Theorem: Ordinal.nat_cast_opow
File: Mathlib/SetTheory/Ordinal/Exponential.lean

tactic: simp
state_before: m : ℕ
⊢ ↑(m ^ 0) = ↑m ^ ↑0

tactic: rw [pow_succ', nat_cast_mul, nat_cast_opow m n, Nat.cast_succ, add_one_eq_succ, opow_succ]
state_before: m n : ℕ
⊢ ↑(m ^ (n + 1)) = ↑m ^ ↑(n + 1)
Theorem: Complex.IsExpCmpFilter.isLittleO_pow_mul_exp
File: Mathlib/Analysis/SpecialFunctions/CompareExp.lean

tactic: simpa only [cpow_nat_cast] using hl.isLittleO_cpow_mul_exp hb m n
state_before: l : Filter ℂ
b₁ b₂ : ℝ
hl : IsExpCmpFilter l
hb : b₁ < b₂
m n : ℕ
⊢ (fun z => z ^ ↑m * exp (↑b₁ * z)) =o[l] fun z => z ^ ↑n * exp (↑b₂ * z)
Theorem: wbtw_midpoint
File: Mathlib/Analysis/Convex/Between.lean

tactic: convert wbtw_pointReflection R (midpoint R x y) x
state_before: R : Type u_1
V : Type u_2
V' : Type ?u.624238
P : Type u_3
P' : Type ?u.624244
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y : P
⊢ Wbtw R x (midpoint R x y) y

tactic: rw [pointReflection_midpoint_left]
state_before: case h.e'_10
R : Type u_1
V : Type u_2
V' : Type ?u.624238
P : Type u_3
P' : Type ?u.624244
inst✝³ : LinearOrderedField R
inst✝² : AddCommGroup V
inst✝¹ : Module R V
inst✝ : AddTorsor V P
x y : P
⊢ y = ↑(pointReflection R (midpoint R x y)) x