val to_base_key (#aprm: _) (k: key aprm) : base_key
val to_base_key (#aprm: _) (k: key aprm) : base_key
let to_base_key #aprm (k: key aprm): base_key
  = match k with
    | AppK k -> aprm.keyhashfn k
    | IntK k -> k
module Zeta.GenKey

open Zeta.App
open Zeta.Key
open Zeta.Merkle

module BT = Zeta.BinTree

type key (aprm: app_params) =
  | AppK: k: app_key aprm.adm -> key aprm
  | IntK: k: merkle_key -> key aprm
/
Zeta.Merkle.fsti.checked Zeta.Key.fsti.checked Zeta.BinTree.fsti.checked Zeta.App.fsti.checked prims.fst.checked FStar.Pervasives.fsti.checked
Zeta.GenKey.fsti
k: Zeta.GenKey.key aprm -> Zeta.Key.base_key
Zeta.App.app_params Zeta.GenKey.key Zeta.App.app_key Zeta.App.__proj__Mkapp_params__item__adm Zeta.App.__proj__Mkapp_params__item__keyhashfn Zeta.Key.merkle_key Zeta.Key.base_key
let to_base_key #aprm (k: key aprm) : base_key =
  
match k with
| AppK k -> aprm.keyhashfn k
| IntK k -> k