ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- FirstOrder.Language.ElementaryEmbedding.ext_iff
theorem ext_iff {f g : M ↪ₑ[L] N} : f = g ↔ ∀ x, f x = g x 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] {f g : M ↪ₑ[L] N}
Goal: f = g ↔ ∀ (x : M), f x = g x
-- FirstOrder.Language.ElementaryEmbedding.refl_apply
@[simp]
theorem refl_apply (x : M) : refl L M x = x 
Arguments: {L : FirstOrder.Language} {M : Type u_1} [L.Structure M] (x : M)
Goal: (FirstOrder.Language.ElementaryEmbedding.refl L M) x = x
-- FirstOrder.Language.ElementaryEmbedding.comp_apply
@[simp]
theorem comp_apply (g : N ↪ₑ[L] P) (f : M ↪ₑ[L] N) (x : M) : g.comp f x = g (f x) 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} {P : Type u_3} [L.Structure M] [L.Structure N] [L.Structure P] (g : N ↪ₑ[L] P) (f : M ↪ₑ[L] N) (x : M)
Goal: (g.comp f) x = g (f x)
-- FirstOrder.Language.ElementaryEmbedding.comp_assoc
theorem comp_assoc (f : M ↪ₑ[L] N) (g : N ↪ₑ[L] P) (h : P ↪ₑ[L] Q) :
    (h.comp g).comp f = h.comp (g.comp f) 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} {P : Type u_3} {Q : Type u_4} [L.Structure M] [L.Structure N] [L.Structure P] [L.Structure Q] (f : M ↪ₑ[L] N) (g : N ↪ₑ[L] P) (h : P ↪ₑ[L] Q)
Goal: (h.comp g).comp f = h.comp (g.comp f)
-- FirstOrder.Language.ElementaryEmbedding.ofModelsElementaryDiagram_toFun
@[simps]
def ElementaryEmbedding.ofModelsElementaryDiagram (N : Type*) [L.Structure N] [L[[M]].Structure N]
    [(lhomWithConstants L M).IsExpansionOn N] [N ⊨ L.elementaryDiagram M] : M ↪ₑ[L] N 
Arguments: (L : FirstOrder.Language) (M : Type u_1) [L.Structure M] (N : Type u_5) [L.Structure N] [L[[M]].Structure N] [(L.lhomWithConstants M).IsExpansionOn N] [N ⊨ L.elementaryDiagram M]
Goal: ∀ (a : M),
  (FirstOrder.Language.ElementaryEmbedding.ofModelsElementaryDiagram L M N) a =
    (FirstOrder.Language.constantMap ∘ Sum.inr) a
-- FirstOrder.Language.Embedding.isElementary_of_exists
theorem isElementary_of_exists (f : M ↪[L] N)
    (htv :
      ∀ (n : ℕ) (φ : L.BoundedFormula Empty (n + 1)) (x : Fin n → M) (a : N),
        φ.Realize default (Fin.snoc (f ∘ x) a : _ → N) →
          ∃ b : M, φ.Realize default (Fin.snoc (f ∘ x) (f b) : _ → N)) :
    ∀ {n} (φ : L.Formula (Fin n)) (x : Fin n → M), φ.Realize (f ∘ x) ↔ φ.Realize x 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (f : M ↪[L] N) (htv :
  ∀ (n : ℕ) (φ : L.BoundedFormula Empty (n + 1)) (x : Fin n → M) (a : N),
    φ.Realize default (Fin.snoc (⇑f ∘ x) a) → ∃ b, φ.Realize default (Fin.snoc (⇑f ∘ x) (f b))) {n : ℕ} (φ : L.Formula (Fin n)) (x : Fin n → M)
Goal: φ.Realize (⇑f ∘ x) ↔ φ.Realize x
-- FirstOrder.Language.Embedding.toElementaryEmbedding_toFun
@[simps]
def toElementaryEmbedding (f : M ↪[L] N)
    (htv :
      ∀ (n : ℕ) (φ : L.BoundedFormula Empty (n + 1)) (x : Fin n → M) (a : N),
        φ.Realize default (Fin.snoc (f ∘ x) a : _ → N) →
          ∃ b : M, φ.Realize default (Fin.snoc (f ∘ x) (f b) : _ → N)) :
    M ↪ₑ[L] N 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (f : M ↪[L] N) (htv :
  ∀ (n : ℕ) (φ : L.BoundedFormula Empty (n + 1)) (x : Fin n → M) (a : N),
    φ.Realize default (Fin.snoc (⇑f ∘ x) a) → ∃ b, φ.Realize default (Fin.snoc (⇑f ∘ x) (f b))) (a : M)
Goal: (f.toElementaryEmbedding htv) a = f a
-- FirstOrder.Language.Equiv.toElementaryEmbedding_toEmbedding
@[simp]
theorem toElementaryEmbedding_toEmbedding (f : M ≃[L] N) :
    f.toElementaryEmbedding.toEmbedding = f.toEmbedding 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (f : M ≃[L] N)
Goal: f.toElementaryEmbedding.toEmbedding = f.toEmbedding
-- FirstOrder.Language.Equiv.coe_toElementaryEmbedding
@[simp]
theorem coe_toElementaryEmbedding (f : M ≃[L] N) :
    (f.toElementaryEmbedding : M → N) = (f : M → N) 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (f : M ≃[L] N)
Goal: ⇑f.toElementaryEmbedding = ⇑f
-- FirstOrder.Language.realize_term_substructure
@[simp]
theorem realize_term_substructure {α : Type*} {S : L.Substructure M} (v : α → S) (t : L.Term α) :
    t.realize ((↑) ∘ v) = (↑(t.realize v) : M) 
Arguments: {L : FirstOrder.Language} {M : Type u_1} [L.Structure M] {α : Type u_5} {S : L.Substructure M} (v : α → ↥S) (t : L.Term α)
Goal: FirstOrder.Language.Term.realize (Subtype.val ∘ v) t = ↑(FirstOrder.Language.Term.realize v t)
-- interval_average_symm
theorem interval_average_symm (f : ℝ → E) (a b : ℝ) : (⨍ x in a..b, f x) = ⨍ x in b..a, f x 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (f : ℝ → E) (a b : ℝ)
Goal: ⨍ (x : ℝ) in a..b, f x = ⨍ (x : ℝ) in b..a, f x
-- interval_average_eq
theorem interval_average_eq (f : ℝ → E) (a b : ℝ) :
    (⨍ x in a..b, f x) = (b - a)⁻¹ • ∫ x in a..b, f x 
Arguments: {E : Type u_1} [NormedAddCommGroup E] [NormedSpace ℝ E] (f : ℝ → E) (a b : ℝ)
Goal: ⨍ (x : ℝ) in a..b, f x = (b - a)⁻¹ • ∫ (x : ℝ) in a..b, f x
-- interval_average_eq_div
theorem interval_average_eq_div (f : ℝ → ℝ) (a b : ℝ) :
    (⨍ x in a..b, f x) = (∫ x in a..b, f x) / (b - a) 
Arguments: (f : ℝ → ℝ) (a b : ℝ)
Goal: ⨍ (x : ℝ) in a..b, f x = (∫ (x : ℝ) in a..b, f x) / (b - a)
-- exp_neg_integrableOn_Ioi
theorem exp_neg_integrableOn_Ioi (a : ℝ) {b : ℝ} (h : 0 < b) :
    IntegrableOn (fun x : ℝ => exp (-b * x)) (Ioi a) 
Arguments: (a : ℝ) {b : ℝ} (h : 0 < b)
Goal: MeasureTheory.IntegrableOn (fun x => rexp (-b * x)) (Set.Ioi a) MeasureTheory.volume
-- integrable_of_isBigO_exp_neg
theorem integrable_of_isBigO_exp_neg {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b)
    (hf : ContinuousOn f (Ici a)) (ho : f =O[atTop] fun x => exp (-b * x)) :
    IntegrableOn f (Ioi a) 
Arguments: {f : ℝ → ℝ} {a b : ℝ} (h0 : 0 < b) (hf : ContinuousOn f (Set.Ici a)) (ho : f =O[Filter.atTop] fun x => rexp (-b * x))
Goal: MeasureTheory.IntegrableOn f (Set.Ioi a) MeasureTheory.volume
-- FirstOrder.Language.BoundedFormula.not_all_isAtomic
theorem not_all_isAtomic (φ : L.BoundedFormula α (n + 1)) : ¬φ.all.IsAtomic 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} (φ : L.BoundedFormula α (n + 1))
Goal: ¬φ.all.IsAtomic
-- FirstOrder.Language.BoundedFormula.not_ex_isAtomic
theorem not_ex_isAtomic (φ : L.BoundedFormula α (n + 1)) : ¬φ.ex.IsAtomic 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} (φ : L.BoundedFormula α (n + 1))
Goal: ¬φ.ex.IsAtomic
-- FirstOrder.Language.BoundedFormula.IsAtomic.relabel
theorem IsAtomic.relabel {m : ℕ} {φ : L.BoundedFormula α m} (h : φ.IsAtomic)
    (f : α → β ⊕ (Fin n)) : (φ.relabel f).IsAtomic 
Arguments: {L : FirstOrder.Language} {α : Type u'} {β : Type v'} {n m : ℕ} {φ : L.BoundedFormula α m} (h : φ.IsAtomic) (f : α → β ⊕ Fin n)
Goal: (FirstOrder.Language.BoundedFormula.relabel f φ).IsAtomic
-- FirstOrder.Language.BoundedFormula.IsAtomic.liftAt
theorem IsAtomic.liftAt {k m : ℕ} (h : IsAtomic φ) : (φ.liftAt k m).IsAtomic 
Arguments: {L : FirstOrder.Language} {α : Type u'} {l : ℕ} {φ : L.BoundedFormula α l} {k m : ℕ} (h : φ.IsAtomic)
Goal: (FirstOrder.Language.BoundedFormula.liftAt k m φ).IsAtomic
-- FirstOrder.Language.BoundedFormula.IsAtomic.castLE
theorem IsAtomic.castLE {h : l ≤ n} (hφ : IsAtomic φ) : (φ.castLE h).IsAtomic 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n l : ℕ} {φ : L.BoundedFormula α l} {h : l ≤ n} (hφ : φ.IsAtomic)
Goal: (FirstOrder.Language.BoundedFormula.castLE h φ).IsAtomic
-- FirstOrder.Language.BoundedFormula.IsAtomic.isQF
theorem IsAtomic.isQF {φ : L.BoundedFormula α n} : IsAtomic φ → IsQF φ 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ : L.BoundedFormula α n}
Goal: φ.IsAtomic → φ.IsQF
-- FirstOrder.Language.BoundedFormula.isQF_bot
theorem isQF_bot : IsQF (⊥ : L.BoundedFormula α n) 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ}
Goal: ⊥.IsQF
-- FirstOrder.Language.BoundedFormula.IsQF.not
theorem IsQF.not {φ : L.BoundedFormula α n} (h : IsQF φ) : IsQF φ.not 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ : L.BoundedFormula α n} (h : φ.IsQF)
Goal: φ.not.IsQF
-- FirstOrder.Language.BoundedFormula.IsQF.relabel
theorem IsQF.relabel {m : ℕ} {φ : L.BoundedFormula α m} (h : φ.IsQF) (f : α → β ⊕ (Fin n)) :
    (φ.relabel f).IsQF 
Arguments: {L : FirstOrder.Language} {α : Type u'} {β : Type v'} {n m : ℕ} {φ : L.BoundedFormula α m} (h : φ.IsQF) (f : α → β ⊕ Fin n)
Goal: (FirstOrder.Language.BoundedFormula.relabel f φ).IsQF
-- FirstOrder.Language.BoundedFormula.IsQF.liftAt
theorem IsQF.liftAt {k m : ℕ} (h : IsQF φ) : (φ.liftAt k m).IsQF 
Arguments: {L : FirstOrder.Language} {α : Type u'} {l : ℕ} {φ : L.BoundedFormula α l} {k m : ℕ} (h : φ.IsQF)
Goal: (FirstOrder.Language.BoundedFormula.liftAt k m φ).IsQF
-- FirstOrder.Language.BoundedFormula.IsQF.castLE
theorem IsQF.castLE {h : l ≤ n} (hφ : IsQF φ) : (φ.castLE h).IsQF 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n l : ℕ} {φ : L.BoundedFormula α l} {h : l ≤ n} (hφ : φ.IsQF)
Goal: (FirstOrder.Language.BoundedFormula.castLE h φ).IsQF
-- FirstOrder.Language.BoundedFormula.not_all_isQF
theorem not_all_isQF (φ : L.BoundedFormula α (n + 1)) : ¬φ.all.IsQF 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} (φ : L.BoundedFormula α (n + 1))
Goal: ¬φ.all.IsQF
-- FirstOrder.Language.BoundedFormula.not_ex_isQF
theorem not_ex_isQF (φ : L.BoundedFormula α (n + 1)) : ¬φ.ex.IsQF 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} (φ : L.BoundedFormula α (n + 1))
Goal: ¬φ.ex.IsQF
-- FirstOrder.Language.BoundedFormula.IsQF.isPrenex
theorem IsQF.isPrenex {φ : L.BoundedFormula α n} : IsQF φ → IsPrenex φ 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ : L.BoundedFormula α n}
Goal: φ.IsQF → φ.IsPrenex
-- FirstOrder.Language.BoundedFormula.IsAtomic.isPrenex
theorem IsAtomic.isPrenex {φ : L.BoundedFormula α n} (h : IsAtomic φ) : IsPrenex φ 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ : L.BoundedFormula α n} (h : φ.IsAtomic)
Goal: φ.IsPrenex
-- FirstOrder.Language.BoundedFormula.IsPrenex.induction_on_all_not
theorem IsPrenex.induction_on_all_not {P : ∀ {n}, L.BoundedFormula α n → Prop}
    {φ : L.BoundedFormula α n} (h : IsPrenex φ)
    (hq : ∀ {m} {ψ : L.BoundedFormula α m}, ψ.IsQF → P ψ)
    (ha : ∀ {m} {ψ : L.BoundedFormula α (m + 1)}, P ψ → P ψ.all)
    (hn : ∀ {m} {ψ : L.BoundedFormula α m}, P ψ → P ψ.not) : P φ 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {P : {n : ℕ} → L.BoundedFormula α n → Prop} {φ : L.BoundedFormula α n} (h : φ.IsPrenex) (hq : ∀ {m : ℕ} {ψ : L.BoundedFormula α m}, ψ.IsQF → P ψ) (ha : ∀ {m : ℕ} {ψ : L.BoundedFormula α (m + 1)}, P ψ → P ψ.all) (hn : ∀ {m : ℕ} {ψ : L.BoundedFormula α m}, P ψ → P ψ.not)
Goal: P φ
-- FirstOrder.Language.BoundedFormula.IsPrenex.relabel
theorem IsPrenex.relabel {m : ℕ} {φ : L.BoundedFormula α m} (h : φ.IsPrenex)
    (f : α → β ⊕ (Fin n)) : (φ.relabel f).IsPrenex 
Arguments: {L : FirstOrder.Language} {α : Type u'} {β : Type v'} {n m : ℕ} {φ : L.BoundedFormula α m} (h : φ.IsPrenex) (f : α → β ⊕ Fin n)
Goal: (FirstOrder.Language.BoundedFormula.relabel f φ).IsPrenex
-- FirstOrder.Language.BoundedFormula.IsPrenex.castLE
theorem IsPrenex.castLE (hφ : IsPrenex φ) : ∀ {n} {h : l ≤ n}, (φ.castLE h).IsPrenex 
Arguments: {L : FirstOrder.Language} {α : Type u'} {l : ℕ} {φ : L.BoundedFormula α l} (hφ : φ.IsPrenex) {n : ℕ} {h : l ≤ n}
Goal: (FirstOrder.Language.BoundedFormula.castLE h φ).IsPrenex
-- FirstOrder.Language.BoundedFormula.IsPrenex.liftAt
theorem IsPrenex.liftAt {k m : ℕ} (h : IsPrenex φ) : (φ.liftAt k m).IsPrenex 
Arguments: {L : FirstOrder.Language} {α : Type u'} {l : ℕ} {φ : L.BoundedFormula α l} {k m : ℕ} (h : φ.IsPrenex)
Goal: (FirstOrder.Language.BoundedFormula.liftAt k m φ).IsPrenex
-- FirstOrder.Language.BoundedFormula.IsQF.toPrenexImpRight
theorem IsQF.toPrenexImpRight {φ : L.BoundedFormula α n} :
    ∀ {ψ : L.BoundedFormula α n}, IsQF ψ → φ.toPrenexImpRight ψ = φ.imp ψ
  
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ ψ : L.BoundedFormula α n}
Goal: ψ.IsQF → φ.toPrenexImpRight ψ = φ.imp ψ
-- FirstOrder.Language.BoundedFormula.isPrenex_toPrenexImpRight
theorem isPrenex_toPrenexImpRight {φ ψ : L.BoundedFormula α n} (hφ : IsQF φ) (hψ : IsPrenex ψ) :
    IsPrenex (φ.toPrenexImpRight ψ) 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ ψ : L.BoundedFormula α n} (hφ : φ.IsQF) (hψ : ψ.IsPrenex)
Goal: (φ.toPrenexImpRight ψ).IsPrenex
-- FirstOrder.Language.BoundedFormula.IsQF.toPrenexImp
theorem IsQF.toPrenexImp :
    ∀ {φ ψ : L.BoundedFormula α n}, φ.IsQF → φ.toPrenexImp ψ = φ.toPrenexImpRight ψ
  
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ ψ : L.BoundedFormula α n}
Goal: φ.IsQF → φ.toPrenexImp ψ = φ.toPrenexImpRight ψ
-- FirstOrder.Language.BoundedFormula.isPrenex_toPrenexImp
theorem isPrenex_toPrenexImp {φ ψ : L.BoundedFormula α n} (hφ : IsPrenex φ) (hψ : IsPrenex ψ) :
    IsPrenex (φ.toPrenexImp ψ) 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {φ ψ : L.BoundedFormula α n} (hφ : φ.IsPrenex) (hψ : ψ.IsPrenex)
Goal: (φ.toPrenexImp ψ).IsPrenex
-- FirstOrder.Language.BoundedFormula.toPrenex_isPrenex
theorem toPrenex_isPrenex (φ : L.BoundedFormula α n) : φ.toPrenex.IsPrenex 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} (φ : L.BoundedFormula α n)
Goal: φ.toPrenex.IsPrenex
-- FirstOrder.Language.BoundedFormula.realize_toPrenexImpRight
theorem realize_toPrenexImpRight {φ ψ : L.BoundedFormula α n} (hφ : IsQF φ) (hψ : IsPrenex ψ)
    {v : α → M} {xs : Fin n → M} :
    (φ.toPrenexImpRight ψ).Realize v xs ↔ (φ.imp ψ).Realize v xs 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {α : Type u'} {n : ℕ} [Nonempty M] {φ ψ : L.BoundedFormula α n} (hφ : φ.IsQF) (hψ : ψ.IsPrenex) {v : α → M} {xs : Fin n → M}
Goal: (φ.toPrenexImpRight ψ).Realize v xs ↔ (φ.imp ψ).Realize v xs
-- FirstOrder.Language.BoundedFormula.realize_toPrenexImp
theorem realize_toPrenexImp {φ ψ : L.BoundedFormula α n} (hφ : IsPrenex φ) (hψ : IsPrenex ψ)
    {v : α → M} {xs : Fin n → M} : (φ.toPrenexImp ψ).Realize v xs ↔ (φ.imp ψ).Realize v xs 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {α : Type u'} {n : ℕ} [Nonempty M] {φ ψ : L.BoundedFormula α n} (hφ : φ.IsPrenex) (hψ : ψ.IsPrenex) {v : α → M} {xs : Fin n → M}
Goal: (φ.toPrenexImp ψ).Realize v xs ↔ (φ.imp ψ).Realize v xs
-- FirstOrder.Language.BoundedFormula.realize_toPrenex
@[simp]
theorem realize_toPrenex (φ : L.BoundedFormula α n) {v : α → M} :
    ∀ {xs : Fin n → M}, φ.toPrenex.Realize v xs ↔ φ.Realize v xs 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {α : Type u'} {n : ℕ} [Nonempty M] (φ : L.BoundedFormula α n) {v : α → M} {xs : Fin n → M}
Goal: φ.toPrenex.Realize v xs ↔ φ.Realize v xs
-- FirstOrder.Language.BoundedFormula.IsQF.induction_on_sup_not
theorem IsQF.induction_on_sup_not {P : L.BoundedFormula α n → Prop} {φ : L.BoundedFormula α n}
    (h : IsQF φ) (hf : P (⊥ : L.BoundedFormula α n))
    (ha : ∀ ψ : L.BoundedFormula α n, IsAtomic ψ → P ψ)
    (hsup : ∀ {φ₁ φ₂}, P φ₁ → P φ₂ → P (φ₁ ⊔ φ₂)) (hnot : ∀ {φ}, P φ → P φ.not)
    (hse :
      ∀ {φ₁ φ₂ : L.BoundedFormula α n}, Theory.SemanticallyEquivalent ∅ φ₁ φ₂ → (P φ₁ ↔ P φ₂)) :
    P φ 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {P : L.BoundedFormula α n → Prop} {φ : L.BoundedFormula α n} (h : φ.IsQF) (hf : P ⊥) (ha : ∀ (ψ : L.BoundedFormula α n), ψ.IsAtomic → P ψ) (hsup : ∀ {φ₁ φ₂ : L.BoundedFormula α n}, P φ₁ → P φ₂ → P (φ₁ ⊔ φ₂)) (hnot : ∀ {φ : L.BoundedFormula α n}, P φ → P φ.not) (hse : ∀ {φ₁ φ₂ : L.BoundedFormula α n}, ∅.SemanticallyEquivalent φ₁ φ₂ → (P φ₁ ↔ P φ₂))
Goal: P φ
-- FirstOrder.Language.BoundedFormula.IsQF.induction_on_inf_not
theorem IsQF.induction_on_inf_not {P : L.BoundedFormula α n → Prop} {φ : L.BoundedFormula α n}
    (h : IsQF φ) (hf : P (⊥ : L.BoundedFormula α n))
    (ha : ∀ ψ : L.BoundedFormula α n, IsAtomic ψ → P ψ)
    (hinf : ∀ {φ₁ φ₂}, P φ₁ → P φ₂ → P (φ₁ ⊓ φ₂)) (hnot : ∀ {φ}, P φ → P φ.not)
    (hse :
      ∀ {φ₁ φ₂ : L.BoundedFormula α n}, Theory.SemanticallyEquivalent ∅ φ₁ φ₂ → (P φ₁ ↔ P φ₂)) :
    P φ 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {P : L.BoundedFormula α n → Prop} {φ : L.BoundedFormula α n} (h : φ.IsQF) (hf : P ⊥) (ha : ∀ (ψ : L.BoundedFormula α n), ψ.IsAtomic → P ψ) (hinf : ∀ {φ₁ φ₂ : L.BoundedFormula α n}, P φ₁ → P φ₂ → P (φ₁ ⊓ φ₂)) (hnot : ∀ {φ : L.BoundedFormula α n}, P φ → P φ.not) (hse : ∀ {φ₁ φ₂ : L.BoundedFormula α n}, ∅.SemanticallyEquivalent φ₁ φ₂ → (P φ₁ ↔ P φ₂))
Goal: P φ
-- FirstOrder.Language.BoundedFormula.semanticallyEquivalent_toPrenex
theorem semanticallyEquivalent_toPrenex (φ : L.BoundedFormula α n) :
    (∅ : L.Theory).SemanticallyEquivalent φ φ.toPrenex 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} (φ : L.BoundedFormula α n)
Goal: ∅.SemanticallyEquivalent φ φ.toPrenex
-- FirstOrder.Language.BoundedFormula.induction_on_all_ex
theorem induction_on_all_ex {P : ∀ {m}, L.BoundedFormula α m → Prop} (φ : L.BoundedFormula α n)
    (hqf : ∀ {m} {ψ : L.BoundedFormula α m}, IsQF ψ → P ψ)
    (hall : ∀ {m} {ψ : L.BoundedFormula α (m + 1)}, P ψ → P ψ.all)
    (hex : ∀ {m} {φ : L.BoundedFormula α (m + 1)}, P φ → P φ.ex)
    (hse : ∀ {m} {φ₁ φ₂ : L.BoundedFormula α m},
      Theory.SemanticallyEquivalent ∅ φ₁ φ₂ → (P φ₁ ↔ P φ₂)) :
    P φ 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {P : {m : ℕ} → L.BoundedFormula α m → Prop} (φ : L.BoundedFormula α n) (hqf : ∀ {m : ℕ} {ψ : L.BoundedFormula α m}, ψ.IsQF → P ψ) (hall : ∀ {m : ℕ} {ψ : L.BoundedFormula α (m + 1)}, P ψ → P ψ.all) (hex : ∀ {m : ℕ} {φ : L.BoundedFormula α (m + 1)}, P φ → P φ.ex) (hse : ∀ {m : ℕ} {φ₁ φ₂ : L.BoundedFormula α m}, ∅.SemanticallyEquivalent φ₁ φ₂ → (P φ₁ ↔ P φ₂))
Goal: P φ
-- FirstOrder.Language.BoundedFormula.induction_on_exists_not
theorem induction_on_exists_not {P : ∀ {m}, L.BoundedFormula α m → Prop} (φ : L.BoundedFormula α n)
    (hqf : ∀ {m} {ψ : L.BoundedFormula α m}, IsQF ψ → P ψ)
    (hnot : ∀ {m} {φ : L.BoundedFormula α m}, P φ → P φ.not)
    (hex : ∀ {m} {φ : L.BoundedFormula α (m + 1)}, P φ → P φ.ex)
    (hse : ∀ {m} {φ₁ φ₂ : L.BoundedFormula α m},
      Theory.SemanticallyEquivalent ∅ φ₁ φ₂ → (P φ₁ ↔ P φ₂)) :
    P φ 
Arguments: {L : FirstOrder.Language} {α : Type u'} {n : ℕ} {P : {m : ℕ} → L.BoundedFormula α m → Prop} (φ : L.BoundedFormula α n) (hqf : ∀ {m : ℕ} {ψ : L.BoundedFormula α m}, ψ.IsQF → P ψ) (hnot : ∀ {m : ℕ} {φ : L.BoundedFormula α m}, P φ → P φ.not) (hex : ∀ {m : ℕ} {φ : L.BoundedFormula α (m + 1)}, P φ → P φ.ex) (hse : ∀ {m : ℕ} {φ₁ φ₂ : L.BoundedFormula α m}, ∅.SemanticallyEquivalent φ₁ φ₂ → (P φ₁ ↔ P φ₂))
Goal: P φ
-- FirstOrder.Language.Formula.isAtomic_graph
theorem Formula.isAtomic_graph (f : L.Functions n) : (Formula.graph f).IsAtomic 
Arguments: {L : FirstOrder.Language} {n : ℕ} (f : L.Functions n)
Goal: FirstOrder.Language.BoundedFormula.IsAtomic (FirstOrder.Language.Formula.graph f)
-- IsCyclotomicExtension.Rat.discr_prime_pow_ne_two'
theorem discr_prime_pow_ne_two' [IsCyclotomicExtension {p ^ (k + 1)} ℚ K]
    (hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))) (hk : p ^ (k + 1) ≠ 2) :
    discr ℚ (hζ.subOnePowerBasis ℚ).basis =
      (-1) ^ ((p ^ (k + 1) : ℕ).totient / 2) * p ^ ((p : ℕ) ^ k * ((p - 1) * (k + 1) - 1)) 
Arguments: {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ (k + 1)} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ (k + 1))) (hk : p ^ (k + 1) ≠ 2)
Goal: Algebra.discr ℚ ⇑(IsPrimitiveRoot.subOnePowerBasis ℚ hζ).basis =
  (-1) ^ (φ (↑p ^ (k + 1)) / 2) * ↑↑p ^ (↑p ^ k * ((↑p - 1) * (k + 1) - 1))
-- IsCyclotomicExtension.Rat.discr_odd_prime'
theorem discr_odd_prime' [IsCyclotomicExtension {p} ℚ K] (hζ : IsPrimitiveRoot ζ p) (hodd : p ≠ 2) :
    discr ℚ (hζ.subOnePowerBasis ℚ).basis = (-1) ^ (((p : ℕ) - 1) / 2) * p ^ ((p : ℕ) - 2) 
Arguments: {p : ℕ+} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p} ℚ K] (hζ : IsPrimitiveRoot ζ ↑p) (hodd : p ≠ 2)
Goal: Algebra.discr ℚ ⇑(IsPrimitiveRoot.subOnePowerBasis ℚ hζ).basis = (-1) ^ ((↑p - 1) / 2) * ↑↑p ^ (↑p - 2)
-- IsCyclotomicExtension.Rat.discr_prime_pow'
theorem discr_prime_pow' [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :
    discr ℚ (hζ.subOnePowerBasis ℚ).basis =
      (-1) ^ ((p ^ k : ℕ).totient / 2) * p ^ ((p : ℕ) ^ (k - 1) * ((p - 1) * k - 1)) 
Arguments: {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k))
Goal: Algebra.discr ℚ ⇑(IsPrimitiveRoot.subOnePowerBasis ℚ hζ).basis =
  (-1) ^ (φ (↑p ^ k) / 2) * ↑↑p ^ (↑p ^ (k - 1) * ((↑p - 1) * k - 1))
-- IsCyclotomicExtension.Rat.discr_prime_pow_eq_unit_mul_pow'
theorem discr_prime_pow_eq_unit_mul_pow' [IsCyclotomicExtension {p ^ k} ℚ K]
    (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :
    ∃ (u : ℤˣ) (n : ℕ), discr ℚ (hζ.subOnePowerBasis ℚ).basis = u * p ^ n 
Arguments: {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k))
Goal: ∃ u n, Algebra.discr ℚ ⇑(IsPrimitiveRoot.subOnePowerBasis ℚ hζ).basis = ↑↑u * ↑↑p ^ n
-- IsCyclotomicExtension.Rat.isIntegralClosure_adjoin_singleton_of_prime_pow
theorem isIntegralClosure_adjoin_singleton_of_prime_pow [hcycl : IsCyclotomicExtension {p ^ k} ℚ K]
    (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) : IsIntegralClosure (adjoin ℤ ({ζ} : Set K)) ℤ K 
Arguments: {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [hcycl : IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k))
Goal: IsIntegralClosure ↥(Algebra.adjoin ℤ {ζ}) ℤ K
-- IsCyclotomicExtension.Rat.isIntegralClosure_adjoin_singleton_of_prime
theorem isIntegralClosure_adjoin_singleton_of_prime [hcycl : IsCyclotomicExtension {p} ℚ K]
    (hζ : IsPrimitiveRoot ζ ↑p) : IsIntegralClosure (adjoin ℤ ({ζ} : Set K)) ℤ K 
Arguments: {p : ℕ+} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [hcycl : IsCyclotomicExtension {p} ℚ K] (hζ : IsPrimitiveRoot ζ ↑p)
Goal: IsIntegralClosure ↥(Algebra.adjoin ℤ {ζ}) ℤ K
-- IsCyclotomicExtension.Rat.cyclotomicRing_isIntegralClosure_of_prime_pow
theorem cyclotomicRing_isIntegralClosure_of_prime_pow :
    IsIntegralClosure (CyclotomicRing (p ^ k) ℤ ℚ) ℤ (CyclotomicField (p ^ k) ℚ) 
Arguments: {p : ℕ+} {k : ℕ} [hp : Fact (Nat.Prime ↑p)]
Goal: IsIntegralClosure (CyclotomicRing (p ^ k) ℤ ℚ) ℤ (CyclotomicField (p ^ k) ℚ)
-- IsCyclotomicExtension.Rat.cyclotomicRing_isIntegralClosure_of_prime
theorem cyclotomicRing_isIntegralClosure_of_prime :
    IsIntegralClosure (CyclotomicRing p ℤ ℚ) ℤ (CyclotomicField p ℚ) 
Arguments: {p : ℕ+} [hp : Fact (Nat.Prime ↑p)]
Goal: IsIntegralClosure (CyclotomicRing p ℤ ℚ) ℤ (CyclotomicField p ℚ)
-- IsPrimitiveRoot.adjoinEquivRingOfIntegers_apply
@[simps!]
noncomputable def _root_.IsPrimitiveRoot.adjoinEquivRingOfIntegers
    [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :
    adjoin ℤ ({ζ} : Set K) ≃ₐ[ℤ] 𝓞 K 
Arguments: {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) (a : ↥(Algebra.adjoin ℤ {ζ}))
Goal: hζ.adjoinEquivRingOfIntegers a = (IsIntegralClosure.lift ℤ (𝓞 K) K) a
-- IsPrimitiveRoot.adjoinEquivRingOfIntegers_symm_apply
@[simps!]
noncomputable def _root_.IsPrimitiveRoot.adjoinEquivRingOfIntegers
    [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) :
    adjoin ℤ ({ζ} : Set K) ≃ₐ[ℤ] 𝓞 K 
Arguments: {p : ℕ+} {k : ℕ} {K : Type u} [Field K] [CharZero K] {ζ : K} [hp : Fact (Nat.Prime ↑p)] [IsCyclotomicExtension {p ^ k} ℚ K] (hζ : IsPrimitiveRoot ζ ↑(p ^ k)) (a : 𝓞 K)
Goal: hζ.adjoinEquivRingOfIntegers.symm a = (IsIntegralClosure.lift ℤ (↥(Algebra.adjoin ℤ {ζ})) K) a
-- IsPrimitiveRoot.coe_toInteger
lemma coe_toInteger {k : ℕ+} (hζ : IsPrimitiveRoot ζ k) : hζ.toInteger.1 = ζ 
Arguments: {K : Type u} [Field K] {ζ : K} {k : ℕ+} (hζ : IsPrimitiveRoot ζ ↑k)
Goal: ↑hζ.toInteger = ζ
-- IsPrimitiveRoot.finite_quotient_toInteger_sub_one
lemma finite_quotient_toInteger_sub_one [NumberField K] {k : ℕ+} (hk : 1 < k)
    (hζ : IsPrimitiveRoot ζ k) : Finite (𝓞 K ⧸ Ideal.span {hζ.toInteger - 1}) 
Arguments: {K : Type u} [Field K] {ζ : K} [NumberField K] {k : ℕ+} (hk : 1 < k) (hζ : IsPrimitiveRoot ζ ↑k)
Goal: Finite (𝓞 K ⧸ Ideal.span {hζ.toInteger - 1})