Instance algNatDed (T: Type){agT: ageable T} : NatDed (pred T).Instance algSepLog (T: Type) {agT: ageable T}{JoinT: Join T}{PermT: Perm_alg T}{SepT: Sep_alg T}{AgeT: Age_alg T} :
      @SepLog (pred T) (algNatDed T).Instance algClassicalSep (T: Type) {agT: ageable T}{JoinT: Join T}{PermT: Perm_alg T}{SepT: Sep_alg T}{AgeT: Age_alg T}:
     @ClassicalSep (pred T) (algNatDed T)(algSepLog T).Definition Triv := predicates_hered.pred nat.Instance TrivNatDed: NatDed Triv := algNatDed nat.Instance TrivSeplog: SepLog Triv := @algSepLog nat _ _ _ _ (asa_nat).Instance TrivClassical: ClassicalSep Triv := @algClassicalSep _ _ _ _ _ asa_nat.Instance TrivIntuitionistic: IntuitionisticSep Triv.Instance algIndir (T: Type) {agT: ageable T}{JoinT: Join T}{PermT: Perm_alg T}{SepT: Sep_alg T}
                {AgeT: Age_alg T}:
         @Indir (pred T) (algNatDed T).Instance TrivIndir: Indir Triv := @algIndir nat _ _ _ _ asa_nat.Notation "'!' e" := (unfash e) (at level 30, right associativity): logic.Definition algRecIndir (T: Type) {agT: ageable T}{JoinT: Join T}{PermT: Perm_alg T}{SepT: Sep_alg T}{AgeT: Age_alg T} :
         @RecIndir (pred T) (algNatDed T) (algIndir T).Instance TrivRecIndir: RecIndir Triv := algRecIndir nat.

(* Specifications: *)
Lemma fash_triv: forall P: Triv, fash P = P.