Module Type SHARE_MODEL.
Include BA_FACTS.
Parameter EqDec_share: EqDec t.
Existing Instance EqDec_share.
(* Splittability *)
Parameter split : t -> t * t.
(* Token factories *)
Parameter isTokenFactory : t -> nat -> Prop.
Parameter isToken : t -> nat -> Prop.
Parameter create_token : nat -> t -> (t*t).

Axiom absorbToken : forall fac fac' tok x n,
isTokenFactory fac' (n+x) ->
isToken tok n ->
join fac' tok fac ->
isTokenFactory fac x.