Section productSA.
Definition prod_Join (A B: Type) {Join_A: Join A} {Join_B: Join B}: Join (A * B) :=
(fun a b c => join (fst a) (fst b) (fst c) /\ join (snd a) (snd b) (snd c)).
Definition prod_SA (A B: Type) {Join_A: Join A} {Join_B: Join B} {SA_A: SeparationAlgebra A} {SA_B: SeparationAlgebra B}: @SeparationAlgebra (A * B) (prod_Join A B).

Lemma prod_incr
(A B: Type)
{R_A: Relation A}
{R_B: Relation B}
{Join_A: Join A}
{Join_B: Join B}:
forall (a: A) (b: B),
increasing a -> increasing b ->
@increasing _
(RelProd R_A R_B)
(@prod_Join _ _ Join_A Join_B) (a,b).