ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- FirstOrder.Language.Substructure.closure_induction
@[elab_as_elim]
theorem closure_induction {p : M → Prop} {x} (h : x ∈ closure L s) (Hs : ∀ x ∈ s, p x)
    (Hfun : ∀ {n : ℕ} (f : L.Functions n), ClosedUnder f (setOf p)) : p x 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {s : Set M} {p : M → Prop} {x : M} (h : x ∈ (FirstOrder.Language.Substructure.closure L).toFun s) (Hs : ∀ x ∈ s, p x) (Hfun : ∀ {n : ℕ} (f : L.Functions n), FirstOrder.Language.ClosedUnder f (setOf p))
Goal: p x
-- FirstOrder.Language.Substructure.dense_induction
@[elab_as_elim]
theorem dense_induction {p : M → Prop} (x : M) {s : Set M} (hs : closure L s = ⊤)
    (Hs : ∀ x ∈ s, p x) (Hfun : ∀ {n : ℕ} (f : L.Functions n), ClosedUnder f (setOf p)) : p x 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {p : M → Prop} (x : M) {s : Set M} (hs : (FirstOrder.Language.Substructure.closure L).toFun s = ⊤) (Hs : ∀ x ∈ s, p x) (Hfun : ∀ {n : ℕ} (f : L.Functions n), FirstOrder.Language.ClosedUnder f (setOf p))
Goal: p x
-- FirstOrder.Language.Substructure.closure_eq
@[simp]
theorem closure_eq : closure L (S : Set M) = S 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] (S : L.Substructure M)
Goal: (FirstOrder.Language.Substructure.closure L).toFun ↑S = S
-- FirstOrder.Language.Substructure.closure_empty
@[simp]
theorem closure_empty : closure L (∅ : Set M) = ⊥ 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M]
Goal: (FirstOrder.Language.Substructure.closure L).toFun ∅ = ⊥
-- FirstOrder.Language.Substructure.closure_univ
@[simp]
theorem closure_univ : closure L (univ : Set M) = ⊤ 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M]
Goal: (FirstOrder.Language.Substructure.closure L).toFun Set.univ = ⊤
-- FirstOrder.Language.Substructure.closure_union
theorem closure_union (s t : Set M) : closure L (s ∪ t) = closure L s ⊔ closure L t 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] (s t : Set M)
Goal: (FirstOrder.Language.Substructure.closure L).toFun (s ∪ t) =
  (FirstOrder.Language.Substructure.closure L).toFun s ⊔ (FirstOrder.Language.Substructure.closure L).toFun t
-- FirstOrder.Language.Substructure.closure_unionᵢ
theorem closure_unionᵢ {ι} (s : ι → Set M) : closure L (⋃ i, s i) = ⨆ i, closure L (s i) 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {ι : Sort u_3} (s : ι → Set M)
Goal: (FirstOrder.Language.Substructure.closure L).toFun (⋃ i, s i) =
  ⨆ i, (FirstOrder.Language.Substructure.closure L).toFun (s i)
-- FirstOrder.Language.Substructure.comap_coe
@[simps]
def comap (φ : M →[L] N) (S : L.Substructure N) : L.Substructure M 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (φ : L.Hom M N) (S : L.Substructure N)
Goal: ↑(FirstOrder.Language.Substructure.comap φ S) = ⇑φ ⁻¹' ↑S
-- FirstOrder.Language.Substructure.mem_comap
@[simp]
theorem mem_comap {S : L.Substructure N} {f : M →[L] N} {x : M} : x ∈ S.comap f ↔ f x ∈ S 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {S : L.Substructure N} {f : L.Hom M N} {x : M}
Goal: x ∈ FirstOrder.Language.Substructure.comap f S ↔ f x ∈ S
-- FirstOrder.Language.Substructure.comap_comap
theorem comap_comap (S : L.Substructure P) (g : N →[L] P) (f : M →[L] N) :
    (S.comap g).comap f = S.comap (g.comp f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} {P : Type u_2} [L.Structure M] [L.Structure N] [L.Structure P] (S : L.Substructure P) (g : L.Hom N P) (f : L.Hom M N)
Goal: FirstOrder.Language.Substructure.comap f (FirstOrder.Language.Substructure.comap g S) =
  FirstOrder.Language.Substructure.comap (g.comp f) S
-- FirstOrder.Language.Substructure.comap_id
@[simp]
theorem comap_id (S : L.Substructure P) : S.comap (Hom.id _ _) = S 
Arguments: {L : FirstOrder.Language} {P : Type u_2} [L.Structure P] (S : L.Substructure P)
Goal: FirstOrder.Language.Substructure.comap (FirstOrder.Language.Hom.id L P) S = S
-- FirstOrder.Language.Substructure.map_coe
@[simps]
def map (φ : M →[L] N) (S : L.Substructure M) : L.Substructure N 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (φ : L.Hom M N) (S : L.Substructure M)
Goal: ↑(FirstOrder.Language.Substructure.map φ S) = ⇑φ '' ↑S
-- FirstOrder.Language.Substructure.mem_map
@[simp]
theorem mem_map {f : M →[L] N} {S : L.Substructure M} {y : N} :
    y ∈ S.map f ↔ ∃ x ∈ S, f x = y 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} {S : L.Substructure M} {y : N}
Goal: y ∈ FirstOrder.Language.Substructure.map f S ↔ ∃ x ∈ S, f x = y
-- FirstOrder.Language.Substructure.mem_map_of_mem
theorem mem_map_of_mem (f : M →[L] N) {S : L.Substructure M} {x : M} (hx : x ∈ S) : f x ∈ S.map f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (f : L.Hom M N) {S : L.Substructure M} {x : M} (hx : x ∈ S)
Goal: f x ∈ FirstOrder.Language.Substructure.map f S
-- FirstOrder.Language.Substructure.apply_coe_mem_map
theorem apply_coe_mem_map (f : M →[L] N) (S : L.Substructure M) (x : S) : f x ∈ S.map f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (f : L.Hom M N) (S : L.Substructure M) (x : ↥S)
Goal: f ↑x ∈ FirstOrder.Language.Substructure.map f S
-- FirstOrder.Language.Substructure.map_map
theorem map_map (g : N →[L] P) (f : M →[L] N) : (S.map f).map g = S.map (g.comp f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} {P : Type u_2} [L.Structure M] [L.Structure N] [L.Structure P] (S : L.Substructure M) (g : L.Hom N P) (f : L.Hom M N)
Goal: FirstOrder.Language.Substructure.map g (FirstOrder.Language.Substructure.map f S) =
  FirstOrder.Language.Substructure.map (g.comp f) S
-- FirstOrder.Language.Substructure.map_le_iff_le_comap
theorem map_le_iff_le_comap {f : M →[L] N} {S : L.Substructure M} {T : L.Substructure N} :
    S.map f ≤ T ↔ S ≤ T.comap f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} {S : L.Substructure M} {T : L.Substructure N}
Goal: FirstOrder.Language.Substructure.map f S ≤ T ↔ S ≤ FirstOrder.Language.Substructure.comap f T
-- FirstOrder.Language.Substructure.gc_map_comap
theorem gc_map_comap (f : M →[L] N) : GaloisConnection (map f) (comap f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (f : L.Hom M N)
Goal: GaloisConnection (FirstOrder.Language.Substructure.map f) (FirstOrder.Language.Substructure.comap f)
-- FirstOrder.Language.Substructure.map_le_of_le_comap
theorem map_le_of_le_comap {T : L.Substructure N} {f : M →[L] N} : S ≤ T.comap f → S.map f ≤ T 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (S : L.Substructure M) {T : L.Substructure N} {f : L.Hom M N}
Goal: S ≤ FirstOrder.Language.Substructure.comap f T → FirstOrder.Language.Substructure.map f S ≤ T
-- FirstOrder.Language.Substructure.le_comap_of_map_le
theorem le_comap_of_map_le {T : L.Substructure N} {f : M →[L] N} : S.map f ≤ T → S ≤ T.comap f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (S : L.Substructure M) {T : L.Substructure N} {f : L.Hom M N}
Goal: FirstOrder.Language.Substructure.map f S ≤ T → S ≤ FirstOrder.Language.Substructure.comap f T
-- FirstOrder.Language.Substructure.le_comap_map
theorem le_comap_map {f : M →[L] N} : S ≤ (S.map f).comap f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (S : L.Substructure M) {f : L.Hom M N}
Goal: S ≤ FirstOrder.Language.Substructure.comap f (FirstOrder.Language.Substructure.map f S)
-- FirstOrder.Language.Substructure.map_comap_le
theorem map_comap_le {S : L.Substructure N} {f : M →[L] N} : (S.comap f).map f ≤ S 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {S : L.Substructure N} {f : L.Hom M N}
Goal: FirstOrder.Language.Substructure.map f (FirstOrder.Language.Substructure.comap f S) ≤ S
-- FirstOrder.Language.Substructure.monotone_map
theorem monotone_map {f : M →[L] N} : Monotone (map f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N}
Goal: Monotone (FirstOrder.Language.Substructure.map f)
-- FirstOrder.Language.Substructure.monotone_comap
theorem monotone_comap {f : M →[L] N} : Monotone (comap f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N}
Goal: Monotone (FirstOrder.Language.Substructure.comap f)
-- FirstOrder.Language.Substructure.map_comap_map
@[simp]
theorem map_comap_map {f : M →[L] N} : ((S.map f).comap f).map f = S.map f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (S : L.Substructure M) {f : L.Hom M N}
Goal: FirstOrder.Language.Substructure.map f
    (FirstOrder.Language.Substructure.comap f (FirstOrder.Language.Substructure.map f S)) =
  FirstOrder.Language.Substructure.map f S
-- FirstOrder.Language.Substructure.comap_map_comap
@[simp]
theorem comap_map_comap {S : L.Substructure N} {f : M →[L] N} :
    ((S.comap f).map f).comap f = S.comap f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {S : L.Substructure N} {f : L.Hom M N}
Goal: FirstOrder.Language.Substructure.comap f
    (FirstOrder.Language.Substructure.map f (FirstOrder.Language.Substructure.comap f S)) =
  FirstOrder.Language.Substructure.comap f S
-- FirstOrder.Language.Substructure.map_sup
theorem map_sup (S T : L.Substructure M) (f : M →[L] N) : (S ⊔ T).map f = S.map f ⊔ T.map f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (S T : L.Substructure M) (f : L.Hom M N)
Goal: FirstOrder.Language.Substructure.map f (S ⊔ T) =
  FirstOrder.Language.Substructure.map f S ⊔ FirstOrder.Language.Substructure.map f T
-- FirstOrder.Language.Substructure.map_iSup
theorem map_iSup {ι : Sort*} (f : M →[L] N) (s : ι → L.Substructure M) :
    (iSup s).map f = ⨆ i, (s i).map f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {ι : Sort u_3} (f : L.Hom M N) (s : ι → L.Substructure M)
Goal: FirstOrder.Language.Substructure.map f (iSup s) = ⨆ i, FirstOrder.Language.Substructure.map f (s i)
-- FirstOrder.Language.Substructure.comap_inf
theorem comap_inf (S T : L.Substructure N) (f : M →[L] N) :
    (S ⊓ T).comap f = S.comap f ⊓ T.comap f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (S T : L.Substructure N) (f : L.Hom M N)
Goal: FirstOrder.Language.Substructure.comap f (S ⊓ T) =
  FirstOrder.Language.Substructure.comap f S ⊓ FirstOrder.Language.Substructure.comap f T
-- FirstOrder.Language.Substructure.comap_iInf
theorem comap_iInf {ι : Sort*} (f : M →[L] N) (s : ι → L.Substructure N) :
    (iInf s).comap f = ⨅ i, (s i).comap f 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {ι : Sort u_3} (f : L.Hom M N) (s : ι → L.Substructure N)
Goal: FirstOrder.Language.Substructure.comap f (iInf s) = ⨅ i, FirstOrder.Language.Substructure.comap f (s i)
-- FirstOrder.Language.Substructure.map_bot
@[simp]
theorem map_bot (f : M →[L] N) : (⊥ : L.Substructure M).map f = ⊥ 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (f : L.Hom M N)
Goal: FirstOrder.Language.Substructure.map f ⊥ = ⊥
-- FirstOrder.Language.Substructure.comap_top
@[simp]
theorem comap_top (f : M →[L] N) : (⊤ : L.Substructure N).comap f = ⊤ 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (f : L.Hom M N)
Goal: FirstOrder.Language.Substructure.comap f ⊤ = ⊤
-- FirstOrder.Language.Substructure.map_id
@[simp]
theorem map_id (S : L.Substructure M) : S.map (Hom.id L M) = S 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] (S : L.Substructure M)
Goal: FirstOrder.Language.Substructure.map (FirstOrder.Language.Hom.id L M) S = S
-- FirstOrder.Language.Substructure.map_closure
theorem map_closure (f : M →[L] N) (s : Set M) : (closure L s).map f = closure L (f '' s) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] (f : L.Hom M N) (s : Set M)
Goal: FirstOrder.Language.Substructure.map f ((FirstOrder.Language.Substructure.closure L).toFun s) =
  (FirstOrder.Language.Substructure.closure L).toFun (⇑f '' s)
-- FirstOrder.Language.Substructure.closure_image
@[simp]
theorem closure_image (f : M →[L] N) : closure L (f '' s) = map f (closure L s) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {s : Set M} (f : L.Hom M N)
Goal: (FirstOrder.Language.Substructure.closure L).toFun (⇑f '' s) =
  FirstOrder.Language.Substructure.map f ((FirstOrder.Language.Substructure.closure L).toFun s)
-- FirstOrder.Language.Substructure.comap_map_eq_of_injective
theorem comap_map_eq_of_injective (S : L.Substructure M) : (S.map f).comap f = S 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Injective ⇑f) (S : L.Substructure M)
Goal: FirstOrder.Language.Substructure.comap f (FirstOrder.Language.Substructure.map f S) = S
-- FirstOrder.Language.Substructure.comap_surjective_of_injective
theorem comap_surjective_of_injective : Function.Surjective (comap f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Injective ⇑f)
Goal: Function.Surjective (FirstOrder.Language.Substructure.comap f)
-- FirstOrder.Language.Substructure.map_injective_of_injective
theorem map_injective_of_injective : Function.Injective (map f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Injective ⇑f)
Goal: Function.Injective (FirstOrder.Language.Substructure.map f)
-- FirstOrder.Language.Substructure.comap_inf_map_of_injective
theorem comap_inf_map_of_injective (S T : L.Substructure M) : (S.map f ⊓ T.map f).comap f = S ⊓ T 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Injective ⇑f) (S T : L.Substructure M)
Goal: FirstOrder.Language.Substructure.comap f
    (FirstOrder.Language.Substructure.map f S ⊓ FirstOrder.Language.Substructure.map f T) =
  S ⊓ T
-- FirstOrder.Language.Substructure.comap_iInf_map_of_injective
theorem comap_iInf_map_of_injective (S : ι → L.Substructure M) :
    (⨅ i, (S i).map f).comap f = iInf S 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {ι : Type u_3} {f : L.Hom M N} (hf : Function.Injective ⇑f) (S : ι → L.Substructure M)
Goal: FirstOrder.Language.Substructure.comap f (⨅ i, FirstOrder.Language.Substructure.map f (S i)) = iInf S
-- FirstOrder.Language.Substructure.comap_sup_map_of_injective
theorem comap_sup_map_of_injective (S T : L.Substructure M) : (S.map f ⊔ T.map f).comap f = S ⊔ T 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Injective ⇑f) (S T : L.Substructure M)
Goal: FirstOrder.Language.Substructure.comap f
    (FirstOrder.Language.Substructure.map f S ⊔ FirstOrder.Language.Substructure.map f T) =
  S ⊔ T
-- FirstOrder.Language.Substructure.comap_iSup_map_of_injective
theorem comap_iSup_map_of_injective (S : ι → L.Substructure M) :
    (⨆ i, (S i).map f).comap f = iSup S 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {ι : Type u_3} {f : L.Hom M N} (hf : Function.Injective ⇑f) (S : ι → L.Substructure M)
Goal: FirstOrder.Language.Substructure.comap f (⨆ i, FirstOrder.Language.Substructure.map f (S i)) = iSup S
-- FirstOrder.Language.Substructure.map_le_map_iff_of_injective
theorem map_le_map_iff_of_injective {S T : L.Substructure M} : S.map f ≤ T.map f ↔ S ≤ T 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Injective ⇑f) {S T : L.Substructure M}
Goal: FirstOrder.Language.Substructure.map f S ≤ FirstOrder.Language.Substructure.map f T ↔ S ≤ T
-- FirstOrder.Language.Substructure.map_strictMono_of_injective
theorem map_strictMono_of_injective : StrictMono (map f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Injective ⇑f)
Goal: StrictMono (FirstOrder.Language.Substructure.map f)
-- FirstOrder.Language.Substructure.map_comap_eq_of_surjective
theorem map_comap_eq_of_surjective (S : L.Substructure N) : (S.comap f).map f = S 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Surjective ⇑f) (S : L.Substructure N)
Goal: FirstOrder.Language.Substructure.map f (FirstOrder.Language.Substructure.comap f S) = S
-- FirstOrder.Language.Substructure.map_surjective_of_surjective
theorem map_surjective_of_surjective : Function.Surjective (map f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Surjective ⇑f)
Goal: Function.Surjective (FirstOrder.Language.Substructure.map f)
-- FirstOrder.Language.Substructure.comap_injective_of_surjective
theorem comap_injective_of_surjective : Function.Injective (comap f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Surjective ⇑f)
Goal: Function.Injective (FirstOrder.Language.Substructure.comap f)
-- FirstOrder.Language.Substructure.map_inf_comap_of_surjective
theorem map_inf_comap_of_surjective (S T : L.Substructure N) :
    (S.comap f ⊓ T.comap f).map f = S ⊓ T 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Surjective ⇑f) (S T : L.Substructure N)
Goal: FirstOrder.Language.Substructure.map f
    (FirstOrder.Language.Substructure.comap f S ⊓ FirstOrder.Language.Substructure.comap f T) =
  S ⊓ T
-- FirstOrder.Language.Substructure.map_iInf_comap_of_surjective
theorem map_iInf_comap_of_surjective (S : ι → L.Substructure N) :
    (⨅ i, (S i).comap f).map f = iInf S 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {ι : Type u_3} {f : L.Hom M N} (hf : Function.Surjective ⇑f) (S : ι → L.Substructure N)
Goal: FirstOrder.Language.Substructure.map f (⨅ i, FirstOrder.Language.Substructure.comap f (S i)) = iInf S
-- FirstOrder.Language.Substructure.map_sup_comap_of_surjective
theorem map_sup_comap_of_surjective (S T : L.Substructure N) :
    (S.comap f ⊔ T.comap f).map f = S ⊔ T 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Surjective ⇑f) (S T : L.Substructure N)
Goal: FirstOrder.Language.Substructure.map f
    (FirstOrder.Language.Substructure.comap f S ⊔ FirstOrder.Language.Substructure.comap f T) =
  S ⊔ T
-- FirstOrder.Language.Substructure.map_iSup_comap_of_surjective
theorem map_iSup_comap_of_surjective (S : ι → L.Substructure N) :
    (⨆ i, (S i).comap f).map f = iSup S 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {ι : Type u_3} {f : L.Hom M N} (hf : Function.Surjective ⇑f) (S : ι → L.Substructure N)
Goal: FirstOrder.Language.Substructure.map f (⨆ i, FirstOrder.Language.Substructure.comap f (S i)) = iSup S
-- FirstOrder.Language.Substructure.comap_le_comap_iff_of_surjective
theorem comap_le_comap_iff_of_surjective {S T : L.Substructure N} : S.comap f ≤ T.comap f ↔ S ≤ T 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Surjective ⇑f) {S T : L.Substructure N}
Goal: FirstOrder.Language.Substructure.comap f S ≤ FirstOrder.Language.Substructure.comap f T ↔ S ≤ T
-- FirstOrder.Language.Substructure.comap_strictMono_of_surjective
theorem comap_strictMono_of_surjective : StrictMono (comap f) 
Arguments: {L : FirstOrder.Language} {M : Type w} {N : Type u_1} [L.Structure M] [L.Structure N] {f : L.Hom M N} (hf : Function.Surjective ⇑f)
Goal: StrictMono (FirstOrder.Language.Substructure.comap f)
-- FirstOrder.Language.Substructure.coeSubtype
@[simp]
theorem coeSubtype : ⇑S.subtype = ((↑) : S → M) 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] (S : L.Substructure M)
Goal: ⇑S.subtype = Subtype.val
-- FirstOrder.Language.Substructure.coe_topEquiv
@[simp]
theorem coe_topEquiv :
    ⇑(topEquiv : (⊤ : L.Substructure M) ≃[L] M) = ((↑) : (⊤ : L.Substructure M) → M) 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M]
Goal: ⇑FirstOrder.Language.Substructure.topEquiv = Subtype.val
-- FirstOrder.Language.Substructure.realize_boundedFormula_top
@[simp]
theorem realize_boundedFormula_top {α : Type*} {n : ℕ} {φ : L.BoundedFormula α n}
    {v : α → (⊤ : L.Substructure M)} {xs : Fin n → (⊤ : L.Substructure M)} :
    φ.Realize v xs ↔ φ.Realize (((↑) : _ → M) ∘ v) ((↑) ∘ xs) 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {α : Type u_3} {n : ℕ} {φ : L.BoundedFormula α n} {v : α → ↥⊤} {xs : Fin n → ↥⊤}
Goal: φ.Realize v xs ↔ φ.Realize (Subtype.val ∘ v) (Subtype.val ∘ xs)
-- FirstOrder.Language.Substructure.realize_formula_top
@[simp]
theorem realize_formula_top {α : Type*} {φ : L.Formula α} {v : α → (⊤ : L.Substructure M)} :
    φ.Realize v ↔ φ.Realize (((↑) : (⊤ : L.Substructure M) → M) ∘ v) 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {α : Type u_3} {φ : L.Formula α} {v : α → ↥⊤}
Goal: φ.Realize v ↔ φ.Realize (Subtype.val ∘ v)
-- FirstOrder.Language.Substructure.closure_induction'
@[elab_as_elim]
theorem closure_induction' (s : Set M) {p : ∀ x, x ∈ closure L s → Prop}
    (Hs : ∀ (x) (h : x ∈ s), p x (subset_closure h))
    (Hfun : ∀ {n : ℕ} (f : L.Functions n), ClosedUnder f { x | ∃ hx, p x hx }) {x}
    (hx : x ∈ closure L s) : p x hx 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] (s : Set M) {p : (x : M) → x ∈ (FirstOrder.Language.Substructure.closure L).toFun s → Prop} (Hs : ∀ (x : M) (h : x ∈ s), p x ⋯) (Hfun :
  ∀ {n : ℕ} (f : L.Functions n),
    FirstOrder.Language.ClosedUnder f {x | ∃ (hx : x ∈ (FirstOrder.Language.Substructure.closure L).toFun s), p x hx}) {x : M} (hx : x ∈ (FirstOrder.Language.Substructure.closure L).toFun s)
Goal: p x hx
-- FirstOrder.Language.LHom.mem_substructureReduct
@[simp]
theorem mem_substructureReduct {x : M} {S : L'.Substructure M} :
    x ∈ φ.substructureReduct S ↔ x ∈ S 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {L' : FirstOrder.Language} [L'.Structure M] (φ : L →ᴸ L') [φ.IsExpansionOn M] {x : M} {S : L'.Substructure M}
Goal: x ∈ φ.substructureReduct S ↔ x ∈ S
-- FirstOrder.Language.LHom.coe_substructureReduct
@[simp]
theorem coe_substructureReduct {S : L'.Substructure M} : (φ.substructureReduct S : Set M) = ↑S 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {L' : FirstOrder.Language} [L'.Structure M] (φ : L →ᴸ L') [φ.IsExpansionOn M] {S : L'.Substructure M}
Goal: ↑(φ.substructureReduct S) = ↑S
-- FirstOrder.Language.Substructure.mem_withConstants
@[simp]
theorem mem_withConstants {x : M} : x ∈ S.withConstants h ↔ x ∈ S 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {S : L.Substructure M} {A : Set M} (h : A ⊆ ↑S) {x : M}
Goal: x ∈ S.withConstants h ↔ x ∈ S
-- FirstOrder.Language.Substructure.coe_withConstants
@[simp]
theorem coe_withConstants : (S.withConstants h : Set M) = ↑S 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {S : L.Substructure M} {A : Set M} (h : A ⊆ ↑S)
Goal: ↑(S.withConstants h) = ↑S
-- FirstOrder.Language.Substructure.reduct_withConstants
@[simp]
theorem reduct_withConstants :
    (L.lhomWithConstants A).substructureReduct (S.withConstants h) = S 
Arguments: {L : FirstOrder.Language} {M : Type w} [L.Structure M] {S : L.Substructure M} {A : Set M} (h : A ⊆ ↑S)
Goal: (L.lhomWithConstants ↑A).substructureReduct (S.withConstants h) = S