{L : FirstOrder.Language} →
  {M : Type w} →
    {N : Type w'} →
      [inst : L.Structure M] →
        [inst_1 : L.Structure N] →
          {motive : L.Hom M N → Sort u_1} →
            (t : L.Hom M N) →
              ((toFun : M → N) →
                  (map_fun' :
                      ∀ {n : ℕ} (f : L.Functions n) (x : Fin n → M),
                        toFun (FirstOrder.Language.Structure.funMap f x) =
                          FirstOrder.Language.Structure.funMap f (toFun ∘ x)) →
                    (map_rel' :
                        ∀ {n : ℕ} (r : L.Relations n) (x : Fin n → M),
                          FirstOrder.Language.Structure.RelMap r x →
                            FirstOrder.Language.Structure.RelMap r (toFun ∘ x)) →
                      motive { toFun := toFun, map_fun' := map_fun', map_rel' := map_rel' }) →
                motive t