Class IncreasingSeparationAlgebra
(worlds: Type)
{R: Relation worlds}
{J: Join worlds }: Type :=
{
all_increasing: forall x: worlds, increasing x
}.
(* (* -Legacy definition-            * * Garbage Collected algebra      * * Is equivalent to increasing *)
Class GarbageCollectSeparationAlgebra(worlds: Type) {kiM: KripkeIntuitionisticModel worlds} {J: Join worlds }: Type :=
{
join_has_order1: forall (m1 m2 m: worlds), join m1 m2 m -> m1 <= m
}.

(* Specifications: *)
Lemma Increasing2GarbageCollect:
forall
(worlds: Type) {kiM: KripkeIntuitionisticModel worlds}
{J: Join worlds }{SA: SeparationAlgebra worlds},
GarbageCollectSeparationAlgebra worlds ->
IncreasingSeparationAlgebra worlds.
Lemma GarbageCollect2Increasing:
forall (worlds: Type) {kiM: KripkeIntuitionisticModel worlds}
{J: Join worlds }{SA: SeparationAlgebra worlds},
IncreasingSeparationAlgebra worlds ->
GarbageCollectSeparationAlgebra worlds.