ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- FirstOrder.Language.LHom.mk₂_funext
theorem mk₂_funext {c f₁ f₂ : Type u} {r₁ r₂ : Type v} {F G : Language.mk₂ c f₁ f₂ r₁ r₂ →ᴸ L'}
    (h0 : ∀ c : (Language.mk₂ c f₁ f₂ r₁ r₂).Constants, F.onFunction c = G.onFunction c)
    (h1 : ∀ f : (Language.mk₂ c f₁ f₂ r₁ r₂).Functions 1, F.onFunction f = G.onFunction f)
    (h2 : ∀ f : (Language.mk₂ c f₁ f₂ r₁ r₂).Functions 2, F.onFunction f = G.onFunction f)
    (h1' : ∀ r : (Language.mk₂ c f₁ f₂ r₁ r₂).Relations 1, F.onRelation r = G.onRelation r)
    (h2' : ∀ r : (Language.mk₂ c f₁ f₂ r₁ r₂).Relations 2, F.onRelation r = G.onRelation r) :
    F = G 
Arguments: {L' : FirstOrder.Language} {c f₁ f₂ : Type u} {r₁ r₂ : Type v} {F G : FirstOrder.Language.mk₂ c f₁ f₂ r₁ r₂ →ᴸ L'} (h0 : ∀ (c_1 : (FirstOrder.Language.mk₂ c f₁ f₂ r₁ r₂).Constants), F.onFunction c_1 = G.onFunction c_1) (h1 : ∀ (f : (FirstOrder.Language.mk₂ c f₁ f₂ r₁ r₂).Functions 1), F.onFunction f = G.onFunction f) (h2 : ∀ (f : (FirstOrder.Language.mk₂ c f₁ f₂ r₁ r₂).Functions 2), F.onFunction f = G.onFunction f) (h1' : ∀ (r : (FirstOrder.Language.mk₂ c f₁ f₂ r₁ r₂).Relations 1), F.onRelation r = G.onRelation r) (h2' : ∀ (r : (FirstOrder.Language.mk₂ c f₁ f₂ r₁ r₂).Relations 2), F.onRelation r = G.onRelation r)
Goal: F = G
-- FirstOrder.Language.LHom.comp_onFunction
@[simps]
def comp (g : L' →ᴸ L'') (f : L →ᴸ L') : L →ᴸ L'' 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {L'' : FirstOrder.Language} (g : L' →ᴸ L'') (f : L →ᴸ L') (_n : ℕ) (F : L.Functions _n)
Goal: (g.comp f).onFunction F = g.onFunction (f.onFunction F)
-- FirstOrder.Language.LHom.comp_onRelation
@[simps]
def comp (g : L' →ᴸ L'') (f : L →ᴸ L') : L →ᴸ L'' 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {L'' : FirstOrder.Language} (g : L' →ᴸ L'') (f : L →ᴸ L')
Goal: ∀ (x : ℕ) (R : L.Relations x), (g.comp f).onRelation R = g.onRelation (f.onRelation R)
-- FirstOrder.Language.LHom.id_comp
@[simp]
theorem id_comp (F : L →ᴸ L') : LHom.id L' ∘ᴸ F = F 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (F : L →ᴸ L')
Goal: (FirstOrder.Language.LHom.id L').comp F = F
-- FirstOrder.Language.LHom.comp_id
@[simp]
theorem comp_id (F : L →ᴸ L') : F ∘ᴸ LHom.id L = F 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (F : L →ᴸ L')
Goal: F.comp (FirstOrder.Language.LHom.id L) = F
-- FirstOrder.Language.LHom.comp_assoc
theorem comp_assoc {L3 : Language} (F : L'' →ᴸ L3) (G : L' →ᴸ L'') (H : L →ᴸ L') :
    F ∘ᴸ G ∘ᴸ H = F ∘ᴸ (G ∘ᴸ H) 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {L'' : FirstOrder.Language} {L3 : FirstOrder.Language} (F : L'' →ᴸ L3) (G : L' →ᴸ L'') (H : L →ᴸ L')
Goal: (F.comp G).comp H = F.comp (G.comp H)
-- FirstOrder.Language.LHom.sumElim_onFunction
@[simps]
protected def sumElim : L.sum L'' →ᴸ L' 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {L'' : FirstOrder.Language} (ψ : L'' →ᴸ L') (_n : ℕ)
Goal: ∀ (a : L.Functions _n ⊕ L''.Functions _n),
  (ϕ.sumElim ψ).onFunction a = Sum.elim (fun f => ϕ.onFunction f) (fun f => ψ.onFunction f) a
-- FirstOrder.Language.LHom.sumElim_onRelation
@[simps]
protected def sumElim : L.sum L'' →ᴸ L' 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {L'' : FirstOrder.Language} (ψ : L'' →ᴸ L') (_n : ℕ)
Goal: ∀ (a : L.Relations _n ⊕ L''.Relations _n),
  (ϕ.sumElim ψ).onRelation a = Sum.elim (fun f => ϕ.onRelation f) (fun f => ψ.onRelation f) a
-- FirstOrder.Language.LHom.sumElim_comp_inl
theorem sumElim_comp_inl (ψ : L'' →ᴸ L') : ϕ.sumElim ψ ∘ᴸ LHom.sumInl = ϕ 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {L'' : FirstOrder.Language} (ψ : L'' →ᴸ L')
Goal: (ϕ.sumElim ψ).comp FirstOrder.Language.LHom.sumInl = ϕ
-- FirstOrder.Language.LHom.sumElim_comp_inr
theorem sumElim_comp_inr (ψ : L'' →ᴸ L') : ϕ.sumElim ψ ∘ᴸ LHom.sumInr = ψ 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {L'' : FirstOrder.Language} (ψ : L'' →ᴸ L')
Goal: (ϕ.sumElim ψ).comp FirstOrder.Language.LHom.sumInr = ψ
-- FirstOrder.Language.LHom.sumElim_inl_inr
theorem sumElim_inl_inr : LHom.sumInl.sumElim LHom.sumInr = LHom.id (L.sum L') 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language}
Goal: FirstOrder.Language.LHom.sumInl.sumElim FirstOrder.Language.LHom.sumInr = FirstOrder.Language.LHom.id (L.sum L')
-- FirstOrder.Language.LHom.comp_sumElim
theorem comp_sumElim {L3 : Language} (θ : L' →ᴸ L3) :
    θ ∘ᴸ ϕ.sumElim ψ = (θ ∘ᴸ ϕ).sumElim (θ ∘ᴸ ψ) 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {L'' : FirstOrder.Language} (ψ : L'' →ᴸ L') {L3 : FirstOrder.Language} (θ : L' →ᴸ L3)
Goal: θ.comp (ϕ.sumElim ψ) = (θ.comp ϕ).sumElim (θ.comp ψ)
-- FirstOrder.Language.LHom.sumMap_onFunction
@[simps]
def sumMap : L.sum L₁ →ᴸ L'.sum L₂ 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {L₁ : FirstOrder.Language} {L₂ : FirstOrder.Language} (ψ : L₁ →ᴸ L₂) (_n : ℕ)
Goal: ∀ (a : L.Functions _n ⊕ L₁.Functions _n),
  (ϕ.sumMap ψ).onFunction a = Sum.map (fun f => ϕ.onFunction f) (fun f => ψ.onFunction f) a
-- FirstOrder.Language.LHom.sumMap_onRelation
@[simps]
def sumMap : L.sum L₁ →ᴸ L'.sum L₂ 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {L₁ : FirstOrder.Language} {L₂ : FirstOrder.Language} (ψ : L₁ →ᴸ L₂) (_n : ℕ)
Goal: ∀ (a : L.Relations _n ⊕ L₁.Relations _n),
  (ϕ.sumMap ψ).onRelation a = Sum.map (fun f => ϕ.onRelation f) (fun f => ψ.onRelation f) a
-- FirstOrder.Language.LHom.sumMap_comp_inl
@[simp]
theorem sumMap_comp_inl : ϕ.sumMap ψ ∘ᴸ LHom.sumInl = LHom.sumInl ∘ᴸ ϕ 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {L₁ : FirstOrder.Language} {L₂ : FirstOrder.Language} (ψ : L₁ →ᴸ L₂)
Goal: (ϕ.sumMap ψ).comp FirstOrder.Language.LHom.sumInl = FirstOrder.Language.LHom.sumInl.comp ϕ
-- FirstOrder.Language.LHom.sumMap_comp_inr
@[simp]
theorem sumMap_comp_inr : ϕ.sumMap ψ ∘ᴸ LHom.sumInr = LHom.sumInr ∘ᴸ ψ 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {L₁ : FirstOrder.Language} {L₂ : FirstOrder.Language} (ψ : L₁ →ᴸ L₂)
Goal: (ϕ.sumMap ψ).comp FirstOrder.Language.LHom.sumInr = FirstOrder.Language.LHom.sumInr.comp ψ
-- FirstOrder.Language.LHom.Injective.onFunction
protected structure Injective : Prop where
  onFunction {n} : Function.Injective fun f : L.Functions n => onFunction ϕ f
  onRelation {n} : Function.Injective fun R : L.Relations n => onRelation ϕ R
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {ϕ : L →ᴸ L'} (self : ϕ.Injective) {n : ℕ}
Goal: Function.Injective fun f => ϕ.onFunction f
-- FirstOrder.Language.LHom.Injective.onRelation
protected structure Injective : Prop where
  onFunction {n} : Function.Injective fun f : L.Functions n => onFunction ϕ f
  onRelation {n} : Function.Injective fun R : L.Relations n => onRelation ϕ R
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {ϕ : L →ᴸ L'} (self : ϕ.Injective) {n : ℕ}
Goal: Function.Injective fun R => ϕ.onRelation R
-- FirstOrder.Language.LHom.IsExpansionOn.map_onRelation
class IsExpansionOn (M : Type*) [L.Structure M] [L'.Structure M] : Prop where
  map_onFunction : ∀ {n} (f : L.Functions n) (x : Fin n → M), funMap (ϕ.onFunction f) x = funMap f x
  map_onRelation : ∀ {n} (R : L.Relations n) (x : Fin n → M),
    RelMap (ϕ.onRelation R) x = RelMap R x
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {ϕ : L →ᴸ L'} {M : Type u_1} [L.Structure M] [L'.Structure M] [self : ϕ.IsExpansionOn M] {n : ℕ} (R : L.Relations n) (x : Fin n → M)
Goal: FirstOrder.Language.Structure.RelMap (ϕ.onRelation R) x = FirstOrder.Language.Structure.RelMap R x
-- FirstOrder.Language.LHom.IsExpansionOn.map_onFunction
class IsExpansionOn (M : Type*) [L.Structure M] [L'.Structure M] : Prop where
  map_onFunction : ∀ {n} (f : L.Functions n) (x : Fin n → M), funMap (ϕ.onFunction f) x = funMap f x
  map_onRelation : ∀ {n} (R : L.Relations n) (x : Fin n → M),
    RelMap (ϕ.onRelation R) x = RelMap R x
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {ϕ : L →ᴸ L'} {M : Type u_1} [L.Structure M] [L'.Structure M] [self : ϕ.IsExpansionOn M] {n : ℕ} (f : L.Functions n) (x : Fin n → M)
Goal: FirstOrder.Language.Structure.funMap (ϕ.onFunction f) x = FirstOrder.Language.Structure.funMap f x
-- FirstOrder.Language.LHom.map_onFunction
@[simp]
theorem map_onFunction {M : Type*} [L.Structure M] [L'.Structure M] [ϕ.IsExpansionOn M] {n}
    (f : L.Functions n) (x : Fin n → M) : funMap (ϕ.onFunction f) x = funMap f x 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {M : Type u_1} [L.Structure M] [L'.Structure M] [ϕ.IsExpansionOn M] {n : ℕ} (f : L.Functions n) (x : Fin n → M)
Goal: FirstOrder.Language.Structure.funMap (ϕ.onFunction f) x = FirstOrder.Language.Structure.funMap f x
-- FirstOrder.Language.LHom.map_onRelation
@[simp]
theorem map_onRelation {M : Type*} [L.Structure M] [L'.Structure M] [ϕ.IsExpansionOn M] {n}
    (R : L.Relations n) (x : Fin n → M) : RelMap (ϕ.onRelation R) x = RelMap R x 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (ϕ : L →ᴸ L') {M : Type u_1} [L.Structure M] [L'.Structure M] [ϕ.IsExpansionOn M] {n : ℕ} (R : L.Relations n) (x : Fin n → M)
Goal: FirstOrder.Language.Structure.RelMap (ϕ.onRelation R) x = FirstOrder.Language.Structure.RelMap R x
-- FirstOrder.Language.LHom.funMap_sumInl
@[simp]
theorem funMap_sumInl [(L.sum L').Structure M] [(LHom.sumInl : L →ᴸ L.sum L').IsExpansionOn M] {n}
    {f : L.Functions n} {x : Fin n → M} : @funMap (L.sum L') M _ n (Sum.inl f) x = funMap f x 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {M : Type w} [L.Structure M] [(L.sum L').Structure M] [FirstOrder.Language.LHom.sumInl.IsExpansionOn M] {n : ℕ} {f : L.Functions n} {x : Fin n → M}
Goal: FirstOrder.Language.Structure.funMap (Sum.inl f) x = FirstOrder.Language.Structure.funMap f x
-- FirstOrder.Language.LHom.funMap_sumInr
@[simp]
theorem funMap_sumInr [(L'.sum L).Structure M] [(LHom.sumInr : L →ᴸ L'.sum L).IsExpansionOn M] {n}
    {f : L.Functions n} {x : Fin n → M} : @funMap (L'.sum L) M _ n (Sum.inr f) x = funMap f x 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {M : Type w} [L.Structure M] [(L'.sum L).Structure M] [FirstOrder.Language.LHom.sumInr.IsExpansionOn M] {n : ℕ} {f : L.Functions n} {x : Fin n → M}
Goal: FirstOrder.Language.Structure.funMap (Sum.inr f) x = FirstOrder.Language.Structure.funMap f x
-- FirstOrder.Language.LHom.sumInl_injective
theorem sumInl_injective : (LHom.sumInl : L →ᴸ L.sum L').Injective 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language}
Goal: FirstOrder.Language.LHom.sumInl.Injective
-- FirstOrder.Language.LHom.sumInr_injective
theorem sumInr_injective : (LHom.sumInr : L' →ᴸ L.sum L').Injective 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language}
Goal: FirstOrder.Language.LHom.sumInr.Injective
-- FirstOrder.Language.LHom.Injective.isExpansionOn_default
theorem Injective.isExpansionOn_default {ϕ : L →ᴸ L'}
    [∀ (n) (f : L'.Functions n), Decidable (f ∈ Set.range fun f : L.Functions n => ϕ.onFunction f)]
    [∀ (n) (r : L'.Relations n), Decidable (r ∈ Set.range fun r : L.Relations n => ϕ.onRelation r)]
    (h : ϕ.Injective) (M : Type*) [Inhabited M] [L.Structure M] :
    @IsExpansionOn L L' ϕ M _ (ϕ.defaultExpansion M) 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {ϕ : L →ᴸ L'} [(n : ℕ) → (f : L'.Functions n) → Decidable (f ∈ Set.range fun f => ϕ.onFunction f)] [(n : ℕ) → (r : L'.Relations n) → Decidable (r ∈ Set.range fun r => ϕ.onRelation r)] (h : ϕ.Injective) (M : Type u_1) [Inhabited M] [L.Structure M]
Goal: ϕ.IsExpansionOn M
-- FirstOrder.Language.LEquiv.right_inv
structure LEquiv (L L' : Language) where
  toLHom : L →ᴸ L'
  invLHom : L' →ᴸ L
  left_inv : invLHom.comp toLHom = LHom.id L
  right_inv : toLHom.comp invLHom = LHom.id L'
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (self : L ≃ᴸ L')
Goal: self.toLHom.comp self.invLHom = FirstOrder.Language.LHom.id L'
-- FirstOrder.Language.LEquiv.left_inv
structure LEquiv (L L' : Language) where
  toLHom : L →ᴸ L'
  invLHom : L' →ᴸ L
  left_inv : invLHom.comp toLHom = LHom.id L
  right_inv : toLHom.comp invLHom = LHom.id L'
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (self : L ≃ᴸ L')
Goal: self.invLHom.comp self.toLHom = FirstOrder.Language.LHom.id L
-- FirstOrder.Language.LEquiv.refl_invLHom
@[simps]
protected def refl : L ≃ᴸ L 
Arguments: (L : FirstOrder.Language)
Goal: (FirstOrder.Language.LEquiv.refl L).invLHom = FirstOrder.Language.LHom.id L
-- FirstOrder.Language.LEquiv.refl_toLHom
@[simps]
protected def refl : L ≃ᴸ L 
Arguments: (L : FirstOrder.Language)
Goal: (FirstOrder.Language.LEquiv.refl L).toLHom = FirstOrder.Language.LHom.id L
-- FirstOrder.Language.LEquiv.symm_toLHom
@[simps]
protected def symm : L' ≃ᴸ L 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (e : L ≃ᴸ L')
Goal: e.symm.toLHom = e.invLHom
-- FirstOrder.Language.LEquiv.symm_invLHom
@[simps]
protected def symm : L' ≃ᴸ L 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} (e : L ≃ᴸ L')
Goal: e.symm.invLHom = e.toLHom
-- FirstOrder.Language.LEquiv.trans_toLHom
@[simps, trans]
protected def trans (e : L ≃ᴸ L') (e' : L' ≃ᴸ L'') : L ≃ᴸ L'' 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {L'' : FirstOrder.Language} (e : L ≃ᴸ L') (e' : L' ≃ᴸ L'')
Goal: (e.trans e').toLHom = e'.toLHom.comp e.toLHom
-- FirstOrder.Language.LEquiv.trans_invLHom
@[simps, trans]
protected def trans (e : L ≃ᴸ L') (e' : L' ≃ᴸ L'') : L ≃ᴸ L'' 
Arguments: {L : FirstOrder.Language} {L' : FirstOrder.Language} {L'' : FirstOrder.Language} (e : L ≃ᴸ L') (e' : L' ≃ᴸ L'')
Goal: (e.trans e').invLHom = e.invLHom.comp e'.invLHom
-- FirstOrder.Language.constantsOn_constants
theorem constantsOn_constants : (constantsOn α).Constants = α 
Arguments: {α : Type u'}
Goal: (FirstOrder.Language.constantsOn α).Constants = α
-- FirstOrder.Language.card_constantsOn
theorem card_constantsOn : (constantsOn α).card = #α 
Arguments: {α : Type u'}
Goal: (FirstOrder.Language.constantsOn α).card = Cardinal.mk α
-- FirstOrder.Language.constantsOnMap_isExpansionOn
theorem constantsOnMap_isExpansionOn {f : α → β} {fα : α → M} {fβ : β → M} (h : fβ ∘ f = fα) :
    @LHom.IsExpansionOn _ _ (LHom.constantsOnMap f) M (constantsOn.structure fα)
      (constantsOn.structure fβ) 
Arguments: {M : Type w} {α : Type u'} {β : Type v'} {f : α → β} {fα : α → M} {fβ : β → M} (h : fβ ∘ f = fα)
Goal: (FirstOrder.Language.LHom.constantsOnMap f).IsExpansionOn M
-- FirstOrder.Language.card_withConstants
@[simp]
theorem card_withConstants :
    L[[α]].card = Cardinal.lift.{w'} L.card + Cardinal.lift.{max u v} #α 
Arguments: (L : FirstOrder.Language) (α : Type w')
Goal: (L.withConstants α).card = Cardinal.lift.{w', max u v} L.card + Cardinal.lift.{max u v, w'} (Cardinal.mk α)
-- FirstOrder.Language.lhomWithConstants_onFunction
@[simps!] -- Porting note: add `!` to `simps`
def lhomWithConstants : L →ᴸ L[[α]] 
Arguments: (L : FirstOrder.Language) (α : Type w') (_n : ℕ) (val : L.Functions _n)
Goal: (L.lhomWithConstants α).onFunction val = Sum.inl val
-- FirstOrder.Language.lhomWithConstants_onRelation
@[simps!] -- Porting note: add `!` to `simps`
def lhomWithConstants : L →ᴸ L[[α]] 
Arguments: (L : FirstOrder.Language) (α : Type w') (_n : ℕ) (val : L.Relations _n)
Goal: (L.lhomWithConstants α).onRelation val = Sum.inl val
-- FirstOrder.Language.lhomWithConstants_injective
theorem lhomWithConstants_injective : (L.lhomWithConstants α).Injective 
Arguments: (L : FirstOrder.Language) (α : Type w')
Goal: (L.lhomWithConstants α).Injective
-- FirstOrder.Language.LEquiv.addEmptyConstants_toLHom
@[simps]
def LEquiv.addEmptyConstants [ie : IsEmpty α] : L ≃ᴸ L[[α]] 
Arguments: (L : FirstOrder.Language) (α : Type w') [ie : IsEmpty α]
Goal: (FirstOrder.Language.LEquiv.addEmptyConstants L α).toLHom = L.lhomWithConstants α
-- FirstOrder.Language.LEquiv.addEmptyConstants_invLHom
@[simps]
def LEquiv.addEmptyConstants [ie : IsEmpty α] : L ≃ᴸ L[[α]] 
Arguments: (L : FirstOrder.Language) (α : Type w') [ie : IsEmpty α]
Goal: (FirstOrder.Language.LEquiv.addEmptyConstants L α).invLHom =
  (FirstOrder.Language.LHom.id L).sumElim (FirstOrder.Language.LHom.ofIsEmpty (FirstOrder.Language.constantsOn α) L)
-- FirstOrder.Language.withConstants_funMap_sum_inl
@[simp]
theorem withConstants_funMap_sum_inl [L[[α]].Structure M] [(lhomWithConstants L α).IsExpansionOn M]
    {n} {f : L.Functions n} {x : Fin n → M} : @funMap (L[[α]]) M _ n (Sum.inl f) x = funMap f x 
Arguments: (L : FirstOrder.Language) {M : Type w} [L.Structure M] {α : Type w'} [(L.withConstants α).Structure M] [(L.lhomWithConstants α).IsExpansionOn M] {n : ℕ} {f : L.Functions n} {x : Fin n → M}
Goal: FirstOrder.Language.Structure.funMap (Sum.inl f) x = FirstOrder.Language.Structure.funMap f x
-- FirstOrder.Language.withConstants_relMap_sum_inl
@[simp]
theorem withConstants_relMap_sum_inl [L[[α]].Structure M] [(lhomWithConstants L α).IsExpansionOn M]
    {n} {R : L.Relations n} {x : Fin n → M} : @RelMap (L[[α]]) M _ n (Sum.inl R) x = RelMap R x 
Arguments: (L : FirstOrder.Language) {M : Type w} [L.Structure M] {α : Type w'} [(L.withConstants α).Structure M] [(L.lhomWithConstants α).IsExpansionOn M] {n : ℕ} {R : L.Relations n} {x : Fin n → M}
Goal: FirstOrder.Language.Structure.RelMap (Sum.inl R) x = FirstOrder.Language.Structure.RelMap R x
-- FirstOrder.Language.LHom.map_constants_comp_sumInl
@[simp]
theorem LHom.map_constants_comp_sumInl {f : α → β} :
    (L.lhomWithConstantsMap f).comp LHom.sumInl = L.lhomWithConstants β 
Arguments: (L : FirstOrder.Language) {α : Type w'} {β : Type u_1} {f : α → β}
Goal: (L.lhomWithConstantsMap f).comp FirstOrder.Language.LHom.sumInl = L.lhomWithConstants β
-- FirstOrder.Language.withConstants_funMap_sum_inr
@[simp]
theorem withConstants_funMap_sum_inr {a : α} {x : Fin 0 → M} :
    @funMap (L[[α]]) M _ 0 (Sum.inr a : L[[α]].Functions 0) x = L.con a 
Arguments: (L : FirstOrder.Language) {M : Type w} [L.Structure M] (α : Type u_1) [(FirstOrder.Language.constantsOn α).Structure M] {a : α} {x : Fin 0 → M}
Goal: FirstOrder.Language.Structure.funMap (Sum.inr a) x = ↑(L.con a)
-- FirstOrder.Language.coe_con
@[simp]
theorem coe_con {a : A} : (L.con a : M) = a 
Arguments: (L : FirstOrder.Language) {M : Type w} [L.Structure M] (A : Set M) {a : ↑A}
Goal: ↑(L.con a) = ↑a
-- aemeasurable_withDensity_iff
theorem aemeasurable_withDensity_iff {E : Type*} [NormedAddCommGroup E] [NormedSpace ℝ E]
    [SecondCountableTopology E] [MeasurableSpace E] [BorelSpace E] {f : α → ℝ≥0}
    (hf : Measurable f) {g : α → E} :
    AEMeasurable g (μ.withDensity fun x => (f x : ℝ≥0∞)) ↔
      AEMeasurable (fun x => (f x : ℝ) • g x) μ 
Arguments: {α : Type u_1} {m : MeasurableSpace α} {μ : MeasureTheory.Measure α} {E : Type u_5} [NormedAddCommGroup E] [NormedSpace ℝ E] [SecondCountableTopology E] [MeasurableSpace E] [BorelSpace E] {f : α → ℝ≥0} (hf : Measurable f) {g : α → E}
Goal: AEMeasurable g (μ.withDensity fun x => ↑(f x)) ↔ AEMeasurable (fun x => ↑(f x) • g x) μ
-- FirstOrder.Language.ElementaryEmbedding.map_formula'
structure ElementaryEmbedding where
  toFun : M → N
  -- Porting note:
  -- The autoparam here used to be `obviously`. We would like to replace it with `aesop`
  -- but that isn't currently sufficient.
  -- See https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Aesop.20and.20cases
  -- If that can be improved, we should change this to `by aesop` and remove the proofs below.
  map_formula' :
    ∀ ⦃n⦄ (φ : L.Formula (Fin n)) (x : Fin n → M), φ.Realize (toFun ∘ x) ↔ φ.Realize x := by
    intros; trivial
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (self : M ↪ₑ[L] N) ⦃n : ℕ⦄ (φ : L.Formula (Fin n)) (x : Fin n → M)
Goal: φ.Realize (↑self ∘ x) ↔ φ.Realize x
-- FirstOrder.Language.ElementaryEmbedding.map_boundedFormula
@[simp]
theorem map_boundedFormula (f : M ↪ₑ[L] N) {α : Type*} {n : ℕ} (φ : L.BoundedFormula α n)
    (v : α → M) (xs : Fin n → M) : φ.Realize (f ∘ v) (f ∘ xs) ↔ φ.Realize v xs 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (f : M ↪ₑ[L] N) {α : Type u_5} {n : ℕ} (φ : L.BoundedFormula α n) (v : α → M) (xs : Fin n → M)
Goal: φ.Realize (⇑f ∘ v) (⇑f ∘ xs) ↔ φ.Realize v xs
-- FirstOrder.Language.ElementaryEmbedding.map_formula
@[simp]
theorem map_formula (f : M ↪ₑ[L] N) {α : Type*} (φ : L.Formula α) (x : α → 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) {α : Type u_5} (φ : L.Formula α) (x : α → M)
Goal: φ.Realize (⇑f ∘ x) ↔ φ.Realize x
-- FirstOrder.Language.ElementaryEmbedding.map_sentence
theorem map_sentence (f : M ↪ₑ[L] N) (φ : L.Sentence) : M ⊨ φ ↔ N ⊨ φ 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (f : M ↪ₑ[L] N) (φ : L.Sentence)
Goal: M ⊨ φ ↔ N ⊨ φ
-- FirstOrder.Language.ElementaryEmbedding.theory_model_iff
theorem theory_model_iff (f : M ↪ₑ[L] N) (T : L.Theory) : M ⊨ T ↔ N ⊨ T 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (f : M ↪ₑ[L] N) (T : L.Theory)
Goal: M ⊨ T ↔ N ⊨ T
-- FirstOrder.Language.ElementaryEmbedding.elementarilyEquivalent
theorem elementarilyEquivalent (f : M ↪ₑ[L] 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)
Goal: M ≅[L] N
-- FirstOrder.Language.ElementaryEmbedding.injective
@[simp]
theorem injective (φ : M ↪ₑ[L] N) : Function.Injective φ 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (φ : M ↪ₑ[L] N)
Goal: Function.Injective ⇑φ
-- FirstOrder.Language.ElementaryEmbedding.map_fun
@[simp]
theorem map_fun (φ : M ↪ₑ[L] N) {n : ℕ} (f : L.Functions n) (x : Fin n → M) :
    φ (funMap f x) = funMap f (φ ∘ x) 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (φ : M ↪ₑ[L] N) {n : ℕ} (f : L.Functions n) (x : Fin n → M)
Goal: φ (FirstOrder.Language.Structure.funMap f x) = FirstOrder.Language.Structure.funMap f (⇑φ ∘ x)
-- FirstOrder.Language.ElementaryEmbedding.map_rel
@[simp]
theorem map_rel (φ : M ↪ₑ[L] N) {n : ℕ} (r : L.Relations n) (x : Fin n → M) :
    RelMap r (φ ∘ x) ↔ RelMap r x 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (φ : M ↪ₑ[L] N) {n : ℕ} (r : L.Relations n) (x : Fin n → M)
Goal: FirstOrder.Language.Structure.RelMap r (⇑φ ∘ x) ↔ FirstOrder.Language.Structure.RelMap r x
-- FirstOrder.Language.ElementaryEmbedding.map_constants
@[simp]
theorem map_constants (φ : M ↪ₑ[L] N) (c : L.Constants) : φ c = c 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (φ : M ↪ₑ[L] N) (c : L.Constants)
Goal: φ ↑c = ↑c
-- FirstOrder.Language.ElementaryEmbedding.toEmbedding_toHom
@[simp]
theorem toEmbedding_toHom (f : M ↪ₑ[L] N) : f.toEmbedding.toHom = f.toHom 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] (f : M ↪ₑ[L] N)
Goal: f.toEmbedding.toHom = f.toHom
-- FirstOrder.Language.ElementaryEmbedding.coe_toHom
@[simp]
theorem coe_toHom {f : M ↪ₑ[L] N} : (f.toHom : 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.toHom = ⇑f
-- FirstOrder.Language.ElementaryEmbedding.coe_toEmbedding
@[simp]
theorem coe_toEmbedding (f : M ↪ₑ[L] N) : (f.toEmbedding : 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.toEmbedding = ⇑f
-- FirstOrder.Language.ElementaryEmbedding.coe_injective
theorem coe_injective : @Function.Injective (M ↪ₑ[L] N) (M → N) (↑) 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N]
Goal: Function.Injective DFunLike.coe
-- FirstOrder.Language.ElementaryEmbedding.ext
@[ext]
theorem ext ⦃f g : M ↪ₑ[L] N⦄ (h : ∀ x, f x = g x) : f = g 
Arguments: {L : FirstOrder.Language} {M : Type u_1} {N : Type u_2} [L.Structure M] [L.Structure N] ⦃f g : M ↪ₑ[L] N⦄ (h : ∀ (x : M), f x = g x)
Goal: f = g