Definition f_combiner : functor := Functor ff_combiner.Instance Join_fcombiner (A: Type) : Join (fcombiner A) :=
    Join_combiner top_S (J1 A) (combjoin A).Instance Perm_fcombiner (A: Type): Perm_alg (fcombiner A).Instance Sep_fcombiner (A: Type): Sep_alg (fcombiner A).Instance Canc_fcombiner (A: Type) (CA: Canc_alg (T1 A)): Canc_alg (fcombiner A).Definition combjoin_hom (A : Type) (B : Type)
    (f : T1 A -> T1 B) (g : T2 A -> T2 B) : Prop :=
      forall x y z,
        combjoin A x y z ->
        combjoin B (f x) (f y) (g z).

Lemma fmap_fcombiner_hom: forall A B (f : A -> B) (g: B -> A), join_hom (JA := Join_fcombiner A) (JB := Join_fcombiner B) (fmap f_combiner f g).