ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- FirstOrder.Language.Equiv.ext_iff
theorem ext_iff {f g : M ≃[L] N} : f = g ↔ ∀ x, f x = g x 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] {f g : L.Equiv M N}
Goal: f = g ↔ ∀ (x : M), f x = g x
-- FirstOrder.Language.Equiv.bijective
theorem bijective (f : M ≃[L] N) : Function.Bijective f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (f : L.Equiv M N)
Goal: Function.Bijective ⇑f
-- FirstOrder.Language.Equiv.injective
theorem injective (f : M ≃[L] N) : Function.Injective f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (f : L.Equiv M N)
Goal: Function.Injective ⇑f
-- FirstOrder.Language.Equiv.surjective
theorem surjective (f : M ≃[L] N) : Function.Surjective f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (f : L.Equiv M N)
Goal: Function.Surjective ⇑f
-- FirstOrder.Language.Equiv.refl_apply
@[simp]
theorem refl_apply (x : M) : refl L M x = x 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] (x : M)
Goal: (FirstOrder.Language.Equiv.refl L M) x = x
-- FirstOrder.Language.Equiv.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 w} {N : Type w'} [L.Structure M] [L.Structure N] {P : Type u_1} [L.Structure P] (g : L.Equiv N P) (f : L.Equiv M N) (x : M)
Goal: (g.comp f) x = g (f x)
-- FirstOrder.Language.Equiv.comp_refl
@[simp]
theorem comp_refl (g : M ≃[L] N) : g.comp (refl L M) = g 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (g : L.Equiv M N)
Goal: g.comp (FirstOrder.Language.Equiv.refl L M) = g
-- FirstOrder.Language.Equiv.refl_comp
@[simp]
theorem refl_comp (g : M ≃[L] N) : (refl L N).comp g = g 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (g : L.Equiv M N)
Goal: (FirstOrder.Language.Equiv.refl L N).comp g = g
-- FirstOrder.Language.Equiv.refl_toEmbedding
@[simp]
theorem refl_toEmbedding : (refl L M).toEmbedding = Embedding.refl L M 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M]
Goal: (FirstOrder.Language.Equiv.refl L M).toEmbedding = FirstOrder.Language.Embedding.refl L M
-- FirstOrder.Language.Equiv.refl_toHom
@[simp]
theorem refl_toHom : (refl L M).toHom = Hom.id L M 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M]
Goal: (FirstOrder.Language.Equiv.refl L M).toHom = FirstOrder.Language.Hom.id L M
-- FirstOrder.Language.Equiv.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 w} {N : Type w'} [L.Structure M] [L.Structure N] {P : Type u_1} [L.Structure P] {Q : Type u_2} [L.Structure Q] (f : L.Equiv M N) (g : L.Equiv N P) (h : L.Equiv P Q)
Goal: (h.comp g).comp f = h.comp (g.comp f)
-- FirstOrder.Language.Equiv.injective_comp
theorem injective_comp (h : N ≃[L] P) :
    Function.Injective (h.comp : (M ≃[L] N) →  (M ≃[L] P)) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] {P : Type u_1} [L.Structure P] (h : L.Equiv N P)
Goal: Function.Injective h.comp
-- FirstOrder.Language.Equiv.comp_toHom
@[simp]
theorem comp_toHom (hnp : N ≃[L] P) (hmn : M ≃[L] N) :
    (hnp.comp hmn).toHom = hnp.toHom.comp hmn.toHom 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] {P : Type u_1} [L.Structure P] (hnp : L.Equiv N P) (hmn : L.Equiv M N)
Goal: (hnp.comp hmn).toHom = hnp.toHom.comp hmn.toHom
-- FirstOrder.Language.Equiv.comp_toEmbedding
@[simp]
theorem comp_toEmbedding (hnp : N ≃[L] P) (hmn : M ≃[L] N) :
    (hnp.comp hmn).toEmbedding = hnp.toEmbedding.comp hmn.toEmbedding 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] {P : Type u_1} [L.Structure P] (hnp : L.Equiv N P) (hmn : L.Equiv M N)
Goal: (hnp.comp hmn).toEmbedding = hnp.toEmbedding.comp hmn.toEmbedding
-- FirstOrder.Language.Equiv.self_comp_symm
@[simp]
theorem self_comp_symm (f : M ≃[L] N) : f.comp f.symm = refl L N 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (f : L.Equiv M N)
Goal: f.comp f.symm = FirstOrder.Language.Equiv.refl L N
-- FirstOrder.Language.Equiv.symm_comp_self
@[simp]
theorem symm_comp_self (f : M ≃[L] N) : f.symm.comp f = refl L M 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (f : L.Equiv M N)
Goal: f.symm.comp f = FirstOrder.Language.Equiv.refl L M
-- FirstOrder.Language.Equiv.symm_comp_self_toEmbedding
@[simp]
theorem symm_comp_self_toEmbedding (f : M ≃[L] N) :
    f.symm.toEmbedding.comp f.toEmbedding = Embedding.refl L M 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (f : L.Equiv M N)
Goal: f.symm.toEmbedding.comp f.toEmbedding = FirstOrder.Language.Embedding.refl L M
-- FirstOrder.Language.Equiv.self_comp_symm_toEmbedding
@[simp]
theorem self_comp_symm_toEmbedding (f : M ≃[L] N) :
    f.toEmbedding.comp f.symm.toEmbedding = Embedding.refl L N 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (f : L.Equiv M N)
Goal: f.toEmbedding.comp f.symm.toEmbedding = FirstOrder.Language.Embedding.refl L N
-- FirstOrder.Language.Equiv.symm_comp_self_toHom
@[simp]
theorem symm_comp_self_toHom (f : M ≃[L] N) :
    f.symm.toHom.comp f.toHom = Hom.id L M 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (f : L.Equiv M N)
Goal: f.symm.toHom.comp f.toHom = FirstOrder.Language.Hom.id L M
-- FirstOrder.Language.Equiv.self_comp_symm_toHom
@[simp]
theorem self_comp_symm_toHom (f : M ≃[L] N) :
    f.toHom.comp f.symm.toHom = Hom.id L N 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] (f : L.Equiv M N)
Goal: f.toHom.comp f.symm.toHom = FirstOrder.Language.Hom.id L N
-- FirstOrder.Language.Equiv.comp_symm
@[simp]
theorem comp_symm (f : M ≃[L] N) (g : N ≃[L] P) : (g.comp f).symm = f.symm.comp g.symm 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] {P : Type u_1} [L.Structure P] (f : L.Equiv M N) (g : L.Equiv N P)
Goal: (g.comp f).symm = f.symm.comp g.symm
-- FirstOrder.Language.Equiv.comp_right_injective
theorem comp_right_injective (h : M ≃[L] N) :
    Function.Injective (fun f ↦ f.comp h : (N ≃[L] P) → (M ≃[L] P)) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] {P : Type u_1} [L.Structure P] (h : L.Equiv M N)
Goal: Function.Injective fun f => f.comp h
-- FirstOrder.Language.Equiv.comp_right_inj
@[simp]
theorem comp_right_inj (h : M ≃[L] N) (f g : N ≃[L] P) : f.comp h = g.comp h ↔ f = g 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type w'} [L.Structure M] [L.Structure N] {P : Type u_1} [L.Structure P] (h : L.Equiv M N) (f g : L.Equiv N P)
Goal: f.comp h = g.comp h ↔ f = g
-- FirstOrder.Language.funMap_sum_inl
@[simp]
theorem funMap_sum_inl {n : ℕ} (f : L₁.Functions n) :
    @funMap (L₁.sum L₂) S _ n (Sum.inl f) = funMap f 
Arguments: {L₁ : FirstOrder.Language} {L₂ : FirstOrder.Language} {S : Type u_3} [L₁.Structure S] [L₂.Structure S] {n : ℕ} (f : L₁.Functions n)
Goal: FirstOrder.Language.Structure.funMap (Sum.inl f) = FirstOrder.Language.Structure.funMap f
-- FirstOrder.Language.funMap_sum_inr
@[simp]
theorem funMap_sum_inr {n : ℕ} (f : L₂.Functions n) :
    @funMap (L₁.sum L₂) S _ n (Sum.inr f) = funMap f 
Arguments: {L₁ : FirstOrder.Language} {L₂ : FirstOrder.Language} {S : Type u_3} [L₁.Structure S] [L₂.Structure S] {n : ℕ} (f : L₂.Functions n)
Goal: FirstOrder.Language.Structure.funMap (Sum.inr f) = FirstOrder.Language.Structure.funMap f
-- FirstOrder.Language.relMap_sum_inl
@[simp]
theorem relMap_sum_inl {n : ℕ} (R : L₁.Relations n) :
    @RelMap (L₁.sum L₂) S _ n (Sum.inl R) = RelMap R 
Arguments: {L₁ : FirstOrder.Language} {L₂ : FirstOrder.Language} {S : Type u_3} [L₁.Structure S] [L₂.Structure S] {n : ℕ} (R : L₁.Relations n)
Goal: FirstOrder.Language.Structure.RelMap (Sum.inl R) = FirstOrder.Language.Structure.RelMap R
-- FirstOrder.Language.relMap_sum_inr
@[simp]
theorem relMap_sum_inr {n : ℕ} (R : L₂.Relations n) :
    @RelMap (L₁.sum L₂) S _ n (Sum.inr R) = RelMap R 
Arguments: {L₁ : FirstOrder.Language} {L₂ : FirstOrder.Language} {S : Type u_3} [L₁.Structure S] [L₂.Structure S] {n : ℕ} (R : L₂.Relations n)
Goal: FirstOrder.Language.Structure.RelMap (Sum.inr R) = FirstOrder.Language.Structure.RelMap R
-- FirstOrder.Language.empty.nonempty_embedding_iff
@[simp]
theorem empty.nonempty_embedding_iff :
    Nonempty (M ↪[Language.empty] N) ↔ Cardinal.lift.{w'} #M ≤ Cardinal.lift.{w} #N 
Arguments: {M : Type w} {N : Type w'} [FirstOrder.Language.empty.Structure M] [FirstOrder.Language.empty.Structure N]
Goal: Nonempty (FirstOrder.Language.empty.Embedding M N) ↔ Cardinal.lift.{w', w} #M ≤ Cardinal.lift.{w, w'} #N
-- FirstOrder.Language.empty.nonempty_equiv_iff
@[simp]
theorem empty.nonempty_equiv_iff :
    Nonempty (M ≃[Language.empty] N) ↔ Cardinal.lift.{w'} #M = Cardinal.lift.{w} #N 
Arguments: {M : Type w} {N : Type w'} [FirstOrder.Language.empty.Structure M] [FirstOrder.Language.empty.Structure N]
Goal: Nonempty (FirstOrder.Language.empty.Equiv M N) ↔ Cardinal.lift.{w', w} #M = Cardinal.lift.{w, w'} #N
-- Function.emptyHom_toFun
@[simps]
def _root_.Function.emptyHom (f : M → N) : M →[Language.empty] N 
Arguments: {M : Type w} {N : Type w'} (f : M → N)
Goal: ∀ (a : M), (Function.emptyHom f) a = f a
-- FirstOrder.Language.toFun_embedding_empty
@[simp]
theorem toFun_embedding_empty (f : M ↪ N) : (Embedding.empty f : M → N) = f 
Arguments: {M : Type w} {N : Type w'} (f : M ↪ N)
Goal: ⇑(Embedding.empty f) = ⇑f
-- FirstOrder.Language.toEmbedding_embedding_empty
@[simp]
theorem toEmbedding_embedding_empty (f : M ↪ N) : (Embedding.empty f).toEmbedding = f 
Arguments: {M : Type w} {N : Type w'} (f : M ↪ N)
Goal: (Embedding.empty f).toEmbedding = f
-- FirstOrder.Language.toFun_equiv_empty
@[simp]
theorem toFun_equiv_empty (f : M ≃ N) : (Equiv.empty f : M → N) = f 
Arguments: {M : Type w} {N : Type w'} (f : M ≃ N)
Goal: ⇑f.empty = ⇑f
-- FirstOrder.Language.toEquiv_equiv_empty
@[simp]
theorem toEquiv_equiv_empty (f : M ≃ N) : (Equiv.empty f).toEquiv = f 
Arguments: {M : Type w} {N : Type w'} (f : M ≃ N)
Goal: f.empty.toEquiv = f
-- Equiv.inducedStructure_funMap
@[simps!]
def inducedStructure (e : M ≃ N) : L.Structure N 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] (e : M ≃ N)
Goal: ∀ {n : ℕ} (f : L.Functions n) (x : Fin n → N),
  FirstOrder.Language.Structure.funMap f x = e (FirstOrder.Language.Structure.funMap f (⇑e.symm ∘ x))
-- Equiv.inducedStructure_RelMap
@[simps!]
def inducedStructure (e : M ≃ N) : L.Structure N 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] (e : M ≃ N)
Goal: ∀ {n : ℕ} (r : L.Relations n) (x : Fin n → N),
  FirstOrder.Language.Structure.RelMap r x = FirstOrder.Language.Structure.RelMap r (⇑e.symm ∘ x)
-- Equiv.toEquiv_inducedStructureEquiv
@[simp]
theorem toEquiv_inducedStructureEquiv (e : M ≃ N) :
    @Language.Equiv.toEquiv L M N _ (inducedStructure e) (inducedStructureEquiv e) = e 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] (e : M ≃ N)
Goal: e.inducedStructureEquiv.toEquiv = e
-- Equiv.toFun_inducedStructureEquiv
@[simp]
theorem toFun_inducedStructureEquiv (e : M ≃ N) :
    DFunLike.coe (@inducedStructureEquiv L M N _ e) = e 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] (e : M ≃ N)
Goal: ⇑e.inducedStructureEquiv = ⇑e
-- Equiv.toFun_inducedStructureEquiv_Symm
@[simp]
theorem toFun_inducedStructureEquiv_Symm (e : M ≃ N) :
    (by
    letI : L.Structure N := inducedStructure e
    exact DFunLike.coe (@inducedStructureEquiv L M N _ e).symm) = (e.symm : N → M) 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] (e : M ≃ N)
Goal: ⇑e.inducedStructureEquiv.symm = ⇑e.symm
-- FirstOrder.Language.IsFraisse.is_equiv_invariant
class IsFraisse : Prop where
  is_nonempty : K.Nonempty
  FG : ∀ M : Bundled.{w} L.Structure, M ∈ K → Structure.FG L M
  is_equiv_invariant : ∀ M N : Bundled.{w} L.Structure, Nonempty (M ≃[L] N) → (M ∈ K ↔ N ∈ K)
  is_essentially_countable : (Quotient.mk' '' K).Countable
  hereditary : Hereditary K
  jointEmbedding : JointEmbedding K
  amalgamation : Amalgamation K
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} [self : FirstOrder.Language.IsFraisse K] (M N : CategoryTheory.Bundled L.Structure)
Goal: Nonempty (↑M ≃[L] ↑N) → (M ∈ K ↔ N ∈ K)
-- FirstOrder.Language.IsFraisse.amalgamation
class IsFraisse : Prop where
  is_nonempty : K.Nonempty
  FG : ∀ M : Bundled.{w} L.Structure, M ∈ K → Structure.FG L M
  is_equiv_invariant : ∀ M N : Bundled.{w} L.Structure, Nonempty (M ≃[L] N) → (M ∈ K ↔ N ∈ K)
  is_essentially_countable : (Quotient.mk' '' K).Countable
  hereditary : Hereditary K
  jointEmbedding : JointEmbedding K
  amalgamation : Amalgamation K
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} [self : FirstOrder.Language.IsFraisse K]
Goal: FirstOrder.Language.Amalgamation K
-- FirstOrder.Language.IsFraisse.FG
class IsFraisse : Prop where
  is_nonempty : K.Nonempty
  FG : ∀ M : Bundled.{w} L.Structure, M ∈ K → Structure.FG L M
  is_equiv_invariant : ∀ M N : Bundled.{w} L.Structure, Nonempty (M ≃[L] N) → (M ∈ K ↔ N ∈ K)
  is_essentially_countable : (Quotient.mk' '' K).Countable
  hereditary : Hereditary K
  jointEmbedding : JointEmbedding K
  amalgamation : Amalgamation K
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} [self : FirstOrder.Language.IsFraisse K] (M : CategoryTheory.Bundled L.Structure)
Goal: M ∈ K → FirstOrder.Language.Structure.FG L ↑M
-- FirstOrder.Language.IsFraisse.is_essentially_countable
class IsFraisse : Prop where
  is_nonempty : K.Nonempty
  FG : ∀ M : Bundled.{w} L.Structure, M ∈ K → Structure.FG L M
  is_equiv_invariant : ∀ M N : Bundled.{w} L.Structure, Nonempty (M ≃[L] N) → (M ∈ K ↔ N ∈ K)
  is_essentially_countable : (Quotient.mk' '' K).Countable
  hereditary : Hereditary K
  jointEmbedding : JointEmbedding K
  amalgamation : Amalgamation K
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} [self : FirstOrder.Language.IsFraisse K]
Goal: (Quotient.mk' '' K).Countable
-- FirstOrder.Language.IsFraisse.jointEmbedding
class IsFraisse : Prop where
  is_nonempty : K.Nonempty
  FG : ∀ M : Bundled.{w} L.Structure, M ∈ K → Structure.FG L M
  is_equiv_invariant : ∀ M N : Bundled.{w} L.Structure, Nonempty (M ≃[L] N) → (M ∈ K ↔ N ∈ K)
  is_essentially_countable : (Quotient.mk' '' K).Countable
  hereditary : Hereditary K
  jointEmbedding : JointEmbedding K
  amalgamation : Amalgamation K
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} [self : FirstOrder.Language.IsFraisse K]
Goal: FirstOrder.Language.JointEmbedding K
-- FirstOrder.Language.IsFraisse.is_nonempty
class IsFraisse : Prop where
  is_nonempty : K.Nonempty
  FG : ∀ M : Bundled.{w} L.Structure, M ∈ K → Structure.FG L M
  is_equiv_invariant : ∀ M N : Bundled.{w} L.Structure, Nonempty (M ≃[L] N) → (M ∈ K ↔ N ∈ K)
  is_essentially_countable : (Quotient.mk' '' K).Countable
  hereditary : Hereditary K
  jointEmbedding : JointEmbedding K
  amalgamation : Amalgamation K
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} [self : FirstOrder.Language.IsFraisse K]
Goal: K.Nonempty
-- FirstOrder.Language.IsFraisse.hereditary
class IsFraisse : Prop where
  is_nonempty : K.Nonempty
  FG : ∀ M : Bundled.{w} L.Structure, M ∈ K → Structure.FG L M
  is_equiv_invariant : ∀ M N : Bundled.{w} L.Structure, Nonempty (M ≃[L] N) → (M ∈ K ↔ N ∈ K)
  is_essentially_countable : (Quotient.mk' '' K).Countable
  hereditary : Hereditary K
  jointEmbedding : JointEmbedding K
  amalgamation : Amalgamation K
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} [self : FirstOrder.Language.IsFraisse K]
Goal: FirstOrder.Language.Hereditary K
-- FirstOrder.Language.age.is_equiv_invariant
theorem age.is_equiv_invariant (N P : Bundled.{w} L.Structure) (h : Nonempty (N ≃[L] P)) :
    N ∈ L.age M ↔ P ∈ L.age M 
Arguments: (L : FirstOrder.Language) (M : Type w) [L.Structure M] (N P : CategoryTheory.Bundled L.Structure) (h : Nonempty (↑N ≃[L] ↑P))
Goal: N ∈ L.age M ↔ P ∈ L.age M
-- FirstOrder.Language.Embedding.age_subset_age
theorem Embedding.age_subset_age (MN : M ↪[L] N) : L.age M ⊆ L.age N 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {N : Type w} [L.Structure N] (MN : M ↪[L] N)
Goal: L.age M ⊆ L.age N
-- FirstOrder.Language.Equiv.age_eq_age
theorem Equiv.age_eq_age (MN : M ≃[L] N) : L.age M = L.age N 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {N : Type w} [L.Structure N] (MN : M ≃[L] N)
Goal: L.age M = L.age N
-- FirstOrder.Language.Structure.FG.mem_age_of_equiv
theorem Structure.FG.mem_age_of_equiv {M N : Bundled L.Structure} (h : Structure.FG L M)
    (MN : Nonempty (M ≃[L] N)) : N ∈ L.age M 
Arguments: {L : FirstOrder.Language} {M N : CategoryTheory.Bundled L.Structure} (h : FirstOrder.Language.Structure.FG L ↑M) (MN : Nonempty (↑M ≃[L] ↑N))
Goal: N ∈ L.age ↑M
-- FirstOrder.Language.Hereditary.is_equiv_invariant_of_fg
theorem Hereditary.is_equiv_invariant_of_fg (h : Hereditary K)
    (fg : ∀ M : Bundled.{w} L.Structure, M ∈ K → Structure.FG L M) (M N : Bundled.{w} L.Structure)
    (hn : Nonempty (M ≃[L] N)) : M ∈ K ↔ N ∈ K 
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} (h : FirstOrder.Language.Hereditary K) (fg : ∀ M ∈ K, FirstOrder.Language.Structure.FG L ↑M) (M N : CategoryTheory.Bundled L.Structure) (hn : Nonempty (↑M ≃[L] ↑N))
Goal: M ∈ K ↔ N ∈ K
-- FirstOrder.Language.age.nonempty
theorem age.nonempty : (L.age M).Nonempty 
Arguments: {L : FirstOrder.Language} (M : Type w) [L.Structure M]
Goal: (L.age M).Nonempty
-- FirstOrder.Language.age.hereditary
theorem age.hereditary : Hereditary (L.age M) 
Arguments: {L : FirstOrder.Language} (M : Type w) [L.Structure M]
Goal: FirstOrder.Language.Hereditary (L.age M)
-- FirstOrder.Language.age.jointEmbedding
theorem age.jointEmbedding : JointEmbedding (L.age M) 
Arguments: {L : FirstOrder.Language} (M : Type w) [L.Structure M]
Goal: FirstOrder.Language.JointEmbedding (L.age M)
-- FirstOrder.Language.age.countable_quotient
theorem age.countable_quotient [h : Countable M] : (Quotient.mk' '' L.age M).Countable 
Arguments: {L : FirstOrder.Language} (M : Type w) [L.Structure M] [h : Countable M]
Goal: (Quotient.mk' '' L.age M).Countable
-- FirstOrder.Language.age_directLimit
-- @[simp] -- Porting note: cannot simplify itself
theorem age_directLimit {ι : Type w} [Preorder ι] [IsDirected ι (· ≤ ·)] [Nonempty ι]
    (G : ι → Type max w w') [∀ i, L.Structure (G i)] (f : ∀ i j, i ≤ j → G i ↪[L] G j)
    [DirectedSystem G fun i j h => f i j h] : L.age (DirectLimit G f) = ⋃ i : ι, L.age (G i) 
Arguments: {L : FirstOrder.Language} {ι : Type w} [Preorder ι] [IsDirected ι fun x x_1 => x ≤ x_1] [Nonempty ι] (G : ι → Type (max w w')) [(i : ι) → L.Structure (G i)] (f : (i j : ι) → i ≤ j → G i ↪[L] G j) [DirectedSystem G fun i j h => ⇑(f i j h)]
Goal: L.age (FirstOrder.Language.DirectLimit G f) = ⋃ i, L.age (G i)
-- FirstOrder.Language.exists_cg_is_age_of
theorem exists_cg_is_age_of (hn : K.Nonempty)
    (h : ∀ M N : Bundled.{w} L.Structure, Nonempty (M ≃[L] N) → (M ∈ K ↔ N ∈ K))
    (hc : (Quotient.mk' '' K).Countable)
    (fg : ∀ M : Bundled.{w} L.Structure, M ∈ K → Structure.FG L M) (hp : Hereditary K)
    (jep : JointEmbedding K) : ∃ M : Bundled.{w} L.Structure, Structure.CG L M ∧ L.age M = K 
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} (hn : K.Nonempty) (h : ∀ (M N : CategoryTheory.Bundled L.Structure), Nonempty (↑M ≃[L] ↑N) → (M ∈ K ↔ N ∈ K)) (hc : (Quotient.mk' '' K).Countable) (fg : ∀ M ∈ K, FirstOrder.Language.Structure.FG L ↑M) (hp : FirstOrder.Language.Hereditary K) (jep : FirstOrder.Language.JointEmbedding K)
Goal: ∃ M, FirstOrder.Language.Structure.CG L ↑M ∧ L.age ↑M = K
-- FirstOrder.Language.exists_countable_is_age_of_iff
theorem exists_countable_is_age_of_iff [Countable (Σ l, L.Functions l)] :
    (∃ M : Bundled.{w} L.Structure, Countable M ∧ L.age M = K) ↔
      K.Nonempty ∧ (∀ M N : Bundled.{w} L.Structure, Nonempty (M ≃[L] N) → (M ∈ K ↔ N ∈ K)) ∧
      (Quotient.mk' '' K).Countable ∧ (∀ M : Bundled.{w} L.Structure, M ∈ K → Structure.FG L M) ∧
      Hereditary K ∧ JointEmbedding K 
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} [Countable ((l : ℕ) × L.Functions l)]
Goal: (∃ M, Countable ↑M ∧ L.age ↑M = K) ↔
  K.Nonempty ∧
    (∀ (M N : CategoryTheory.Bundled L.Structure), Nonempty (↑M ≃[L] ↑N) → (M ∈ K ↔ N ∈ K)) ∧
      (Quotient.mk' '' K).Countable ∧
        (∀ M ∈ K, FirstOrder.Language.Structure.FG L ↑M) ∧
          FirstOrder.Language.Hereditary K ∧ FirstOrder.Language.JointEmbedding K
-- FirstOrder.Language.IsFraisseLimit.ultrahomogeneous
structure IsFraisseLimit [Countable (Σ l, L.Functions l)] [Countable M] : Prop where
  protected ultrahomogeneous : IsUltrahomogeneous L M
  protected age : L.age M = K
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} {M : Type w} [L.Structure M] [Countable ((l : ℕ) × L.Functions l)] [Countable M] (self : FirstOrder.Language.IsFraisseLimit K M)
Goal: L.IsUltrahomogeneous M
-- FirstOrder.Language.IsFraisseLimit.age
structure IsFraisseLimit [Countable (Σ l, L.Functions l)] [Countable M] : Prop where
  protected ultrahomogeneous : IsUltrahomogeneous L M
  protected age : L.age M = K
Arguments: {L : FirstOrder.Language} {K : Set (CategoryTheory.Bundled L.Structure)} {M : Type w} [L.Structure M] [Countable ((l : ℕ) × L.Functions l)] [Countable M] (self : FirstOrder.Language.IsFraisseLimit K M)
Goal: L.age M = K
-- FirstOrder.Language.IsUltrahomogeneous.amalgamation_age
theorem IsUltrahomogeneous.amalgamation_age (h : L.IsUltrahomogeneous M) :
    Amalgamation (L.age M) 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] (h : L.IsUltrahomogeneous M)
Goal: FirstOrder.Language.Amalgamation (L.age M)
-- FirstOrder.Language.IsUltrahomogeneous.age_isFraisse
theorem IsUltrahomogeneous.age_isFraisse [Countable M] (h : L.IsUltrahomogeneous M) :
    IsFraisse (L.age M) 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] [Countable M] (h : L.IsUltrahomogeneous M)
Goal: FirstOrder.Language.IsFraisse (L.age M)
-- FirstOrder.Language.IsFraisseLimit.isFraisse
theorem isFraisse [Countable (Σ l, L.Functions l)] [Countable M] (h : IsFraisseLimit K M) :
    IsFraisse K 
Arguments: {L : FirstOrder.Language} (K : Set (CategoryTheory.Bundled L.Structure)) {M : Type w} [L.Structure M] [Countable ((l : ℕ) × L.Functions l)] [Countable M] (h : FirstOrder.Language.IsFraisseLimit K M)
Goal: FirstOrder.Language.IsFraisse K
-- FirstOrder.Language.ElementarySubstructure.isElementary'
structure ElementarySubstructure where
  toSubstructure : L.Substructure M
  isElementary' : toSubstructure.IsElementary
Arguments: {L : FirstOrder.Language} {M : Type u_1} [L.Structure M] (self : L.ElementarySubstructure M)
Goal: (↑self).IsElementary
-- FirstOrder.Language.ElementarySubstructure.isElementary
@[simp]
theorem isElementary (S : L.ElementarySubstructure M) : (S : L.Substructure M).IsElementary 
Arguments: {L : FirstOrder.Language} {M : Type u_1} [L.Structure M] (S : L.ElementarySubstructure M)
Goal: (↑S).IsElementary
-- FirstOrder.Language.ElementarySubstructure.coeSubtype
@[simp]
theorem coeSubtype {S : L.ElementarySubstructure M} : ⇑S.subtype = ((↑) : S → M) 
Arguments: {L : FirstOrder.Language} {M : Type u_1} [L.Structure M] {S : L.ElementarySubstructure M}
Goal: ⇑S.subtype = Subtype.val
-- FirstOrder.Language.ElementarySubstructure.mem_top
@[simp]
theorem mem_top (x : M) : x ∈ (⊤ : L.ElementarySubstructure M) 
Arguments: {L : FirstOrder.Language} {M : Type u_1} [L.Structure M] (x : M)
Goal: x ∈ ⊤