package archetype

  1. Overview
  2. Docs
val show_lident : lident -> Ppx_deriving_runtime.string
type currency =
  1. | Utz
val show_currency : currency -> Ppx_deriving_runtime.string
type container =
  1. | Collection
  2. | Aggregate
  3. | Partition
  4. | View
val show_container : container -> Ppx_deriving_runtime.string
type btyp =
  1. | Bunit
  2. | Bbool
  3. | Bint
  4. | Brational
  5. | Bdate
  6. | Bduration
  7. | Btimestamp
  8. | Bstring
  9. | Baddress
  10. | Bcurrency
  11. | Bsignature
  12. | Bkey
  13. | Bkeyhash
  14. | Bbytes
  15. | Bnat
  16. | Bchainid
  17. | Bbls12_381_fr
  18. | Bbls12_381_g1
  19. | Bbls12_381_g2
  20. | Bnever
type vset =
  1. | VSremoved
  2. | VSadded
  3. | VSstable
  4. | VSbefore
  5. | VSafter
  6. | VSfixed
type trtyp =
  1. | TRentry
  2. | TRaction
  3. | TRasset
  4. | TRfield
type ntype =
  1. | Tasset of lident
  2. | Tenum of lident
  3. | Tstate
  4. | Tbuiltin of btyp
  5. | Tcontainer of type_ * container
  6. | Tlist of type_
  7. | Toption of type_
  8. | Ttuple of type_ list
  9. | Tset of type_
  10. | Tmap of bool * type_ * type_
  11. | Tor of type_ * type_
  12. | Trecord of lident
  13. | Tlambda of type_ * type_
  14. | Tunit
  15. | Tstorage
  16. | Toperation
  17. | Tcontract of type_
  18. | Tprog of type_
  19. | Tvset of vset * type_
  20. | Ttrace of trtyp
  21. | Tticket of type_
  22. | Tsapling_state of int
  23. | Tsapling_transaction of int
and type_ = ntype * lident option
type 'id pattern_node =
  1. | Pwild
  2. | Pconst of 'id * lident list
type 'id pattern_gen = {
  1. node : 'id pattern_node;
  2. loc : Location.t;
}
type pattern = lident pattern_gen
val show_pattern : pattern -> Ppx_deriving_runtime.string
type 'id for_ident_gen =
  1. | FIsimple of 'id
  2. | FIdouble of 'id * 'id
type for_ident = lident for_ident_gen
val show_for_ident : for_ident -> Ppx_deriving_runtime.string
type comparison_operator =
  1. | Gt
  2. | Ge
  3. | Lt
  4. | Le
val show_comparison_operator : comparison_operator -> Ppx_deriving_runtime.string
type rat_arith_op =
  1. | Rplus
  2. | Rminus
  3. | Rmult
  4. | Rdiv
val show_rat_arith_op : rat_arith_op -> Ppx_deriving_runtime.string
type assignment_operator =
  1. | ValueAssign
  2. | PlusAssign
  3. | MinusAssign
  4. | MultAssign
  5. | DivAssign
  6. | AndAssign
  7. | OrAssign
val show_assignment_operator : assignment_operator -> Ppx_deriving_runtime.string
type sort_kind =
  1. | SKasc
  2. | SKdesc
val show_sort_kind : sort_kind -> Ppx_deriving_runtime.string
type ('id, 'term) assign_kind_gen =
  1. | Avar of 'id
  2. | Avarstore of 'id
  3. | Aasset of 'id * 'id * 'term
  4. | Arecord of 'id * 'id * 'term
  5. | Astate
  6. | Aassetstate of Ident.ident * 'term
  7. | Aoperations
type 'term var_kind_gen =
  1. | Vassetstate of 'term
  2. | Vstorevar
  3. | Vstorecol
  4. | Vdefinition
  5. | Vlocal
  6. | Vparam
  7. | Vfield
  8. | Vstate
  9. | Vthe
  10. | Vparameter
type temp =
  1. | Tbefore
  2. | Tat of Ident.ident
  3. | Tnone
type delta =
  1. | Dadded
  2. | Dremoved
  3. | Dunmoved
  4. | Dnone
type 'term container_kind_gen =
  1. | CKcoll of temp * delta
  2. | CKview of 'term
  3. | CKfield of Ident.ident * Ident.ident * 'term * temp * delta
  4. | CKdef of Ident.ident
type 'term iter_container_kind_gen =
  1. | ICKcoll of Ident.ident
  2. | ICKview of 'term
  3. | ICKfield of Ident.ident * Ident.ident * 'term
  4. | ICKset of 'term
  5. | ICKlist of 'term
  6. | ICKmap of 'term
type 'term transfer_kind_gen =
  1. | TKsimple of 'term * 'term
  2. | TKcall of 'term * Ident.ident * type_ * 'term * 'term
  3. | TKentry of 'term * 'term * 'term
  4. | TKself of 'term * Ident.ident * (Ident.ident * 'term) list
  5. | TKoperation of 'term
type ('id, 'term) mterm_node =
  1. | Mletin of 'id list * 'term * type_ option * 'term * 'term option
  2. | Mdeclvar of 'id list * type_ option * 'term
  3. | Mapp of 'id * 'term list
  4. | Massign of assignment_operator * type_ * ('id, 'term) assign_kind_gen * 'term
  5. | Mif of 'term * 'term * 'term option
  6. | Mmatchwith of 'term * ('id pattern_gen * 'term) list
  7. | Minstrmatchoption of 'term * 'id * 'term * 'term
  8. | Minstrmatchor of 'term * 'id * 'term * 'id * 'term
  9. | Minstrmatchlist of 'term * 'id * 'id * 'term * 'term
  10. | Mfor of 'id for_ident_gen * 'term iter_container_kind_gen * 'term * Ident.ident option
  11. | Miter of 'id * 'term * 'term * 'term * Ident.ident option
  12. | Mwhile of 'term * 'term * Ident.ident option
  13. | Mseq of 'term list
  14. | Mreturn of 'term
  15. | Mlabel of 'id
  16. | Mmark of 'id * 'term
  17. | Mfail of 'id fail_type_gen
  18. | Mtransfer of 'term transfer_kind_gen
  19. | Mentrypoint of type_ * 'id * 'term * 'term option
  20. | Mcallview of type_ * 'term * 'id * 'term
  21. | Mself of 'id
  22. | Moperations
  23. | Mmkoperation of 'term * 'term * 'term
  24. | Mint of Core.big_int
  25. | Mnat of Core.big_int
  26. | Mbool of bool
  27. | Mrational of Core.big_int * Core.big_int
  28. | Mstring of string
  29. | Mcurrency of Core.big_int * currency
  30. | Maddress of string
  31. | Mdate of Core.date
  32. | Mduration of Core.duration
  33. | Mtimestamp of Core.big_int
  34. | Mbytes of string
  35. | Munit
  36. | Mexprif of 'term * 'term * 'term
  37. | Mexprmatchwith of 'term * ('id pattern_gen * 'term) list
  38. | Mmatchoption of 'term * 'id * 'term * 'term
  39. | Mmatchor of 'term * 'id * 'term * 'id * 'term
  40. | Mmatchlist of 'term * 'id * 'id * 'term * 'term
  41. | Mfold of 'term * 'id * 'term
  42. | Mmap of 'term * 'id * 'term
  43. | Mexeclambda of 'term * 'term
  44. | Mapplylambda of 'term * 'term
  45. | Mleft of type_ * 'term
  46. | Mright of type_ * 'term
  47. | Mnone
  48. | Msome of 'term
  49. | Mtuple of 'term list
  50. | Masset of 'term list
  51. | Massets of 'term list
  52. | Mlitset of 'term list
  53. | Mlitlist of 'term list
  54. | Mlitmap of bool * ('term * 'term) list
  55. | Mlitrecord of (Ident.ident * 'term) list
  56. | Mlambda of type_ * 'id * type_ * 'term
  57. | Mdot of 'term * 'id
  58. | Mdotassetfield of 'id * 'term * 'id
  59. | Mequal of type_ * 'term * 'term
  60. | Mnequal of type_ * 'term * 'term
  61. | Mgt of 'term * 'term
  62. | Mge of 'term * 'term
  63. | Mlt of 'term * 'term
  64. | Mle of 'term * 'term
  65. | Mmulticomp of 'term * (comparison_operator * 'term) list
  66. | Mand of 'term * 'term
  67. | Mor of 'term * 'term
  68. | Mxor of 'term * 'term
  69. | Mnot of 'term
  70. | Mplus of 'term * 'term
  71. | Mminus of 'term * 'term
  72. | Mmult of 'term * 'term
  73. | Mdivrat of 'term * 'term
  74. | Mdiveuc of 'term * 'term
  75. | Mmodulo of 'term * 'term
  76. | Mdivmod of 'term * 'term
  77. | Muminus of 'term
  78. | MthreeWayCmp of 'term * 'term
  79. | Mshiftleft of 'term * 'term
  80. | Mshiftright of 'term * 'term
  81. | Msubnat of 'term * 'term
  82. | Maddasset of Ident.ident * 'term
  83. | Maddfield of Ident.ident * Ident.ident * 'term * 'term
  84. | Mremoveasset of Ident.ident * 'term
  85. | Mremovefield of Ident.ident * Ident.ident * 'term * 'term
  86. | Mremoveall of Ident.ident * Ident.ident * 'term
  87. | Mremoveif of Ident.ident * 'term container_kind_gen * (Ident.ident * type_) list * 'term * 'term list
  88. | Mclear of Ident.ident * 'term container_kind_gen
  89. | Mset of Ident.ident * Ident.ident list * 'term * 'term
  90. | Mupdate of Ident.ident * 'term * ('id * assignment_operator * 'term) list
  91. | Maddupdate of Ident.ident * 'term container_kind_gen * 'term * ('id * assignment_operator * 'term) list
  92. | Maddforce of Ident.ident * 'term
  93. | Mget of Ident.ident * 'term container_kind_gen * 'term
  94. | Mselect of Ident.ident * 'term container_kind_gen * (Ident.ident * type_) list * 'term * 'term list
  95. | Msort of Ident.ident * 'term container_kind_gen * (Ident.ident * sort_kind) list
  96. | Mcontains of Ident.ident * 'term container_kind_gen * 'term
  97. | Mnth of Ident.ident * 'term container_kind_gen * 'term
  98. | Mcount of Ident.ident * 'term container_kind_gen
  99. | Msum of Ident.ident * 'term container_kind_gen * 'term
  100. | Mhead of Ident.ident * 'term container_kind_gen * 'term
  101. | Mtail of Ident.ident * 'term container_kind_gen * 'term
  102. | Mcast of type_ * type_ * 'term
  103. | Mtupleaccess of 'term * Core.big_int
  104. | Mrecupdate of 'term * (Ident.ident * 'term) list
  105. | Msetadd of type_ * 'term * 'term
  106. | Msetremove of type_ * 'term * 'term
  107. | Msetcontains of type_ * 'term * 'term
  108. | Msetlength of type_ * 'term
  109. | Msetfold of type_ * 'id * 'id * 'term * 'term * 'term
  110. | Msetinstradd of type_ * ('id, 'term) assign_kind_gen * 'term
  111. | Msetinstrremove of type_ * ('id, 'term) assign_kind_gen * 'term
  112. | Mlistprepend of type_ * 'term * 'term
  113. | Mlistlength of type_ * 'term
  114. | Mlistcontains of type_ * 'term * 'term
  115. | Mlistnth of type_ * 'term * 'term
  116. | Mlistreverse of type_ * 'term
  117. | Mlistconcat of type_ * 'term * 'term
  118. | Mlistfold of type_ * 'id * 'id * 'term * 'term * 'term
  119. | Mlistinstrprepend of type_ * ('id, 'term) assign_kind_gen * 'term
  120. | Mlistinstrconcat of type_ * ('id, 'term) assign_kind_gen * 'term
  121. | Mmapput of type_ * type_ * 'term * 'term * 'term
  122. | Mmapremove of type_ * type_ * 'term * 'term
  123. | Mmapupdate of type_ * type_ * 'term * 'term * 'term
  124. | Mmapget of type_ * type_ * 'term * 'term
  125. | Mmapgetopt of type_ * type_ * 'term * 'term
  126. | Mmapcontains of type_ * type_ * 'term * 'term
  127. | Mmaplength of type_ * type_ * 'term
  128. | Mmapfold of type_ * 'id * 'id * 'id * 'term * 'term * 'term
  129. | Mmapinstrput of type_ * type_ * ('id, 'term) assign_kind_gen * 'term * 'term
  130. | Mmapinstrremove of type_ * type_ * ('id, 'term) assign_kind_gen * 'term
  131. | Mmapinstrupdate of type_ * type_ * ('id, 'term) assign_kind_gen * 'term * 'term
  132. | Mmin of 'term * 'term
  133. | Mmax of 'term * 'term
  134. | Mabs of 'term
  135. | Mconcat of 'term * 'term
  136. | Mconcatlist of 'term
  137. | Mslice of 'term * 'term * 'term
  138. | Mlength of 'term
  139. | Misnone of 'term
  140. | Missome of 'term
  141. | Moptget of 'term
  142. | Mrequiresome of 'term * 'term
  143. | Mfloor of 'term
  144. | Mceil of 'term
  145. | Mtostring of type_ * 'term
  146. | Mpack of 'term
  147. | Munpack of type_ * 'term
  148. | Msetdelegate of 'term
  149. | Mimplicitaccount of 'term
  150. | Mcontractaddress of 'term
  151. | Mkeyaddress of 'term
  152. | Mblake2b of 'term
  153. | Msha256 of 'term
  154. | Msha512 of 'term
  155. | Msha3 of 'term
  156. | Mkeccak of 'term
  157. | Mhashkey of 'term
  158. | Mchecksignature of 'term * 'term * 'term
  159. | Mtotalvotingpower
  160. | Mvotingpower of 'term
  161. | Mcreateticket of 'term * 'term
  162. | Mreadticket of 'term
  163. | Msplitticket of 'term * 'term * 'term
  164. | Mjointickets of 'term * 'term
  165. | Msapling_empty_state of int
  166. | Msapling_verify_update of 'term * 'term
  167. | Mpairing_check of 'term
  168. | Mnow
  169. | Mtransferred
  170. | Mcaller
  171. | Mbalance
  172. | Msource
  173. | Mselfaddress
  174. | Mchainid
  175. | Mmetadata
  176. | Mlevel
  177. | Mvar of 'id * 'term var_kind_gen * temp * delta
  178. | Menumval of 'id * 'term list * Ident.ident
  179. | Mrateq of 'term * 'term
  180. | Mratcmp of comparison_operator * 'term * 'term
  181. | Mratarith of rat_arith_op * 'term * 'term
  182. | Mratuminus of 'term
  183. | Mrattez of 'term * 'term
  184. | Mnattoint of 'term
  185. | Mnattorat of 'term
  186. | Minttorat of 'term
  187. | Mratdur of 'term * 'term
  188. | Mdatefromtimestamp of 'term
  189. | Mmuteztonat of 'term
  190. | Mforall of 'id * type_ * 'term option * 'term
  191. | Mexists of 'id * type_ * 'term option * 'term
  192. | Mimply of 'term * 'term
  193. | Mequiv of 'term * 'term
  194. | Msetiterated of 'term iter_container_kind_gen
  195. | Msettoiterate of 'term iter_container_kind_gen
  196. | Mempty of Ident.ident
  197. | Msingleton of Ident.ident * 'term
  198. | Msubsetof of Ident.ident * 'term container_kind_gen * 'term
  199. | Misempty of Ident.ident * 'term
  200. | Munion of Ident.ident * 'term * 'term
  201. | Minter of Ident.ident * 'term * 'term
  202. | Mdiff of Ident.ident * 'term * 'term
and assign_kind = (lident, mterm) assign_kind_gen
and var_kind = mterm var_kind_gen
and container_kind = mterm container_kind_gen
and iter_container_kind = mterm iter_container_kind_gen
and transfer_kind = mterm transfer_kind_gen
and 'id mterm_gen = {
  1. node : ('id, 'id mterm_gen) mterm_node;
  2. type_ : type_;
  3. loc : Location.t;
}
and mterm = lident mterm_gen
and mterm__node = (lident, mterm) mterm_node
and 'id fail_type_gen =
  1. | Invalid of 'id mterm_gen
  2. | InvalidCaller
  3. | InvalidCondition of Ident.ident
  4. | NotFound
  5. | KeyExists
  6. | KeyExistsOrNotFound
  7. | OutOfBound
  8. | DivByZero
  9. | NatAssign
  10. | NoTransfer
  11. | InvalidState
and fail_type = lident fail_type_gen
and api_container_kind =
  1. | Coll
  2. | View
  3. | Field of Ident.ident * Ident.ident
and api_list =
  1. | Lprepend of type_
  2. | Lcontains of type_
  3. | Llength of type_
  4. | Lnth of type_
  5. | Lreverse of type_
and api_builtin =
  1. | Bmin of type_
  2. | Bmax of type_
  3. | Babs of type_
  4. | Bconcat of type_
  5. | Bslice of type_
  6. | Blength of type_
  7. | Bisnone of type_
  8. | Bissome of type_
  9. | Boptget of type_
  10. | Bfloor
  11. | Bceil
  12. | Btostring of type_
  13. | Bfail of type_
and api_internal =
  1. | RatEq
  2. | RatCmp
  3. | RatArith
  4. | RatUminus
  5. | RatTez
  6. | RatDur
and api_storage_node =
  1. | APIAsset of api_asset
  2. | APIList of api_list
  3. | APIBuiltin of api_builtin
  4. | APIInternal of api_internal
and api_loc =
  1. | OnlyFormula
  2. | OnlyExec
  3. | ExecFormula
and api_storage = {
  1. node_item : api_storage_node;
  2. api_loc : api_loc;
}
and api_verif =
  1. | StorageInvariant of Ident.ident * Ident.ident * mterm
and entry_description =
  1. | ADany
  2. | ADadd of Ident.ident
  3. | ADremove of Ident.ident
  4. | ADupdate of Ident.ident
  5. | ADtransfer of Ident.ident
  6. | ADget of Ident.ident
  7. | ADiterate of Ident.ident
  8. | ADcall of Ident.ident
and security_role = lident
and security_entry =
  1. | Sany
  2. | Sentry of lident list
val show_assign_kind : assign_kind -> Ppx_deriving_runtime.string
val show_var_kind : var_kind -> Ppx_deriving_runtime.string
val show_container_kind : container_kind -> Ppx_deriving_runtime.string
val show_iter_container_kind : iter_container_kind -> Ppx_deriving_runtime.string
val show_transfer_kind : transfer_kind -> Ppx_deriving_runtime.string
val show_mterm__node : mterm__node -> Ppx_deriving_runtime.string
val show_fail_type : fail_type -> Ppx_deriving_runtime.string
val show_api_container_kind : api_container_kind -> Ppx_deriving_runtime.string
val show_api_asset : api_asset -> Ppx_deriving_runtime.string
val show_api_list : api_list -> Ppx_deriving_runtime.string
val show_api_builtin : api_builtin -> Ppx_deriving_runtime.string
val show_api_internal : api_internal -> Ppx_deriving_runtime.string
val show_api_storage_node : api_storage_node -> Ppx_deriving_runtime.string
val show_api_loc : api_loc -> Ppx_deriving_runtime.string
val show_api_storage : api_storage -> Ppx_deriving_runtime.string
val show_api_verif : api_verif -> Ppx_deriving_runtime.string
val show_entry_description : entry_description -> Ppx_deriving_runtime.string
val show_security_role : security_role -> Ppx_deriving_runtime.string
val show_security_entry : security_entry -> Ppx_deriving_runtime.string
type 'id label_term_gen = {
  1. label : 'id;
  2. term : 'id mterm_gen;
  3. loc : Location.t;
}
type label_term = lident label_term_gen
val show_label_term : label_term -> Ppx_deriving_runtime.string
type model_type =
  1. | MTvar
  2. | MTconst
  3. | MTasset of Ident.ident
  4. | MTstate
  5. | MTenum of Ident.ident
val show_model_type : model_type -> Ppx_deriving_runtime.string
type 'id storage_item_gen = {
  1. id : 'id;
  2. model_type : model_type;
  3. typ : type_;
  4. const : bool;
  5. ghost : bool;
  6. default : 'id mterm_gen;
  7. loc : Location.t;
}
type storage_item = lident storage_item_gen
val show_storage_item : storage_item -> Ppx_deriving_runtime.string
type 'id storage_gen = 'id storage_item_gen list
type storage = lident storage_gen
val show_storage : storage -> Ppx_deriving_runtime.string
type 'id enum_item_gen = {
  1. name : 'id;
  2. args : type_ list;
  3. invariants : 'id label_term_gen list;
}
type enum_item = lident enum_item_gen
val show_enum_item : enum_item -> Ppx_deriving_runtime.string
type variable_kind =
  1. | VKconstant
  2. | VKvariable
val show_variable_kind : variable_kind -> Ppx_deriving_runtime.string
type 'id var_gen = {
  1. name : 'id;
  2. type_ : type_;
  3. original_type : type_;
  4. kind : variable_kind;
  5. default : 'id mterm_gen option;
  6. invariants : 'id label_term_gen list;
  7. loc : Location.t;
}
type var = lident var_gen
type 'id enum_gen = {
  1. name : 'id;
  2. values : 'id enum_item_gen list;
  3. initial : 'id;
}
type enum = lident enum_gen
type 'id asset_item_gen = {
  1. name : 'id;
  2. type_ : type_;
  3. original_type : type_;
  4. default : 'id mterm_gen option;
  5. shadow : bool;
  6. loc : Location.t;
}
type asset_item = lident asset_item_gen
val show_asset_item : asset_item -> Ppx_deriving_runtime.string
type 'id asset_gen = {
  1. name : 'id;
  2. values : 'id asset_item_gen list;
  3. keys : Ident.ident list;
  4. sort : 'id list;
  5. big_map : bool;
  6. state : lident option;
  7. invariants : lident label_term_gen list;
  8. init : 'id mterm_gen list;
  9. loc : Location.t;
}
type asset = lident asset_gen
type position =
  1. | Ptuple of Ident.ident list
  2. | Pnode of position list
val show_position : position -> Ppx_deriving_runtime.string
type 'id record_field_gen = {
  1. name : 'id;
  2. type_ : type_;
  3. loc : Location.t;
}
type record_field = lident record_field_gen
val show_record_field : record_field -> Ppx_deriving_runtime.string
type 'id record_gen = {
  1. name : 'id;
  2. fields : 'id record_field_gen list;
  3. pos : position;
  4. loc : Location.t;
}
type record = lident record_gen
val show_record : record -> Ppx_deriving_runtime.string
type 'id function_ = {
  1. name : 'id;
}
type 'id entry = {
  1. name : 'id;
}
type 'id argument_gen = 'id * type_ * 'id mterm_gen option
type argument = lident argument_gen
val show_argument : argument -> Ppx_deriving_runtime.string
type 'id function_struct_gen = {
  1. name : 'id;
  2. args : 'id argument_gen list;
  3. eargs : 'id argument_gen list;
  4. body : 'id mterm_gen;
  5. loc : Location.t;
}
type function_struct = lident function_struct_gen
val show_function_struct : function_struct -> Ppx_deriving_runtime.string
type 'id function_node_gen =
  1. | Function of 'id function_struct_gen * type_
  2. | Getter of 'id function_struct_gen * type_
  3. | View of 'id function_struct_gen * type_
  4. | Entry of 'id function_struct_gen
type function_node = lident function_node_gen
val show_function_node : function_node -> Ppx_deriving_runtime.string
type 'id signature_gen = {
  1. name : 'id;
  2. args : 'id argument_gen list;
  3. ret : type_ option;
}
type signature = lident signature_gen
val show_signature : signature -> Ppx_deriving_runtime.string
type 'id variable_gen = {
  1. decl : 'id argument_gen;
  2. kind : variable_kind;
  3. loc : Location.t;
}
type variable = lident variable_gen
val show_variable : variable -> Ppx_deriving_runtime.string
type 'id predicate_gen = {
  1. name : 'id;
  2. args : ('id * type_) list;
  3. body : 'id mterm_gen;
  4. loc : Location.t;
}
type predicate = lident predicate_gen
val show_predicate : predicate -> Ppx_deriving_runtime.string
type 'id definition_gen = {
  1. name : 'id;
  2. typ : type_;
  3. var : 'id;
  4. body : 'id mterm_gen;
  5. loc : Location.t;
}
type definition = lident definition_gen
val show_definition : definition -> Ppx_deriving_runtime.string
type 'id invariant_gen = {
  1. label : 'id;
  2. formulas : 'id mterm_gen list;
}
type invariant = lident invariant_gen
val show_invariant : invariant -> Ppx_deriving_runtime.string
type 'id fail_gen = {
  1. label : 'id;
  2. fid : 'id option;
  3. arg : 'id;
  4. atype : type_;
  5. formula : 'id mterm_gen;
  6. loc : Location.t;
}
type fail = lident fail_gen
type spec_mode =
  1. | Post
  2. | Assert
val show_spec_mode : spec_mode -> Ppx_deriving_runtime.string
type 'id postcondition_gen = {
  1. name : 'id;
  2. mode : spec_mode;
  3. formula : 'id mterm_gen;
  4. invariants : 'id invariant_gen list;
  5. uses : 'id list;
}
type postcondition = lident postcondition_gen
val show_postcondition : postcondition -> Ppx_deriving_runtime.string
type 'id assert_gen = {
  1. name : 'id;
  2. label : 'id;
  3. formula : 'id mterm_gen;
  4. invariants : 'id invariant_gen list;
  5. uses : 'id list;
}
type assert_ = lident assert_gen
val show_assert_ : assert_ -> Ppx_deriving_runtime.string
type 'id specification_gen = {
  1. predicates : 'id predicate_gen list;
  2. definitions : 'id definition_gen list;
  3. lemmas : 'id label_term_gen list;
  4. theorems : 'id label_term_gen list;
  5. fails : 'id fail_gen list;
  6. variables : 'id variable_gen list;
  7. invariants : ('id * 'id label_term_gen list) list;
  8. effects : 'id mterm_gen list;
  9. postconditions : 'id postcondition_gen list;
  10. loc : Location.t;
}
type security_node =
  1. | SonlyByRole of entry_description * security_role list
  2. | SonlyInEntry of entry_description * security_entry
  3. | SonlyByRoleInEntry of entry_description * security_role list * security_entry
  4. | SnotByRole of entry_description * security_role list
  5. | SnotInEntry of entry_description * security_entry
  6. | SnotByRoleInEntry of entry_description * security_role list * security_entry
  7. | StransferredBy of entry_description
  8. | StransferredTo of entry_description
  9. | SnoStorageFail of security_entry
val show_security_node : security_node -> Ppx_deriving_runtime.string
type security_predicate = {
  1. s_node : security_node;
  2. loc : Location.t;
}
val show_security_predicate : security_predicate -> Ppx_deriving_runtime.string
type security_item = {
  1. label : lident;
  2. predicate : security_predicate;
  3. loc : Location.t;
}
val show_security_item : security_item -> Ppx_deriving_runtime.string
type security = {
  1. items : security_item list;
  2. loc : Location.t;
}
val show_security : security -> Ppx_deriving_runtime.string
type specification = lident specification_gen
val show_specification : specification -> Ppx_deriving_runtime.string
type 'id function__gen = {
  1. node : 'id function_node_gen;
  2. spec : 'id specification_gen option;
}
type function__ = lident function__gen
val show_function__ : function__ -> Ppx_deriving_runtime.string
type 'id decl_node_gen =
  1. | Dvar of 'id var_gen
  2. | Denum of 'id enum_gen
  3. | Dasset of 'id asset_gen
  4. | Drecord of 'id record_gen
type decl_node = lident decl_node_gen
val show_decl_node : decl_node -> Ppx_deriving_runtime.string
type 'id parameter_gen = {
  1. name : 'id;
  2. typ : type_;
  3. default : 'id mterm_gen option;
  4. value : 'id mterm_gen option;
  5. const : bool;
  6. loc : Location.t;
}
type parameter = lident parameter_gen
val show_parameter : parameter -> Ppx_deriving_runtime.string
type metadata_kind =
  1. | MKuri of string Location.loced
  2. | MKjson of string Location.loced
val show_metadata_kind : metadata_kind -> Ppx_deriving_runtime.string
type 'id model_gen = {
  1. name : lident;
  2. parameters : 'id parameter_gen list;
  3. metadata : metadata_kind option;
  4. api_items : api_storage list;
  5. api_verif : api_verif list;
  6. decls : 'id decl_node_gen list;
  7. storage : 'id storage_gen;
  8. functions : 'id function__gen list;
  9. specification : 'id specification_gen;
  10. security : security;
  11. loc : Location.t;
}
type property =
  1. | Ppostcondition of postcondition * Ident.ident option
  2. | PstorageInvariant of label_term * Ident.ident
  3. | PsecurityPredicate of security_item
val show_property : property -> Ppx_deriving_runtime.string
type model = lident model_gen
val mk_pattern : ?loc:Location.t -> 'id pattern_node -> 'id pattern_gen
val mk_mterm : ?loc:Location.t -> ('id, 'id mterm_gen) mterm_node -> type_ -> 'id mterm_gen
val mk_label_term : ?loc:Location.t -> 'id mterm_gen -> 'id -> 'id label_term_gen
val mk_variable : ?loc:Location.t -> 'a argument_gen -> variable_kind -> 'a variable_gen
val mk_predicate : ?args:('a * type_) list -> ?loc:Location.t -> 'a -> 'a mterm_gen -> 'a predicate_gen
val mk_definition : ?loc:Location.t -> 'a -> type_ -> 'a -> 'a mterm_gen -> 'a definition_gen
val mk_invariant : ?formulas:'a mterm_gen list -> 'a -> 'a invariant_gen
val mk_fail : ?loc:Location.t -> 'a -> 'a option -> 'a -> type_ -> 'a mterm_gen -> 'a fail_gen
val mk_postcondition : ?invariants:'a invariant_gen list -> ?uses:'a list -> 'a -> spec_mode -> 'a mterm_gen -> 'a postcondition_gen
val mk_assert : ?invariants:'a invariant_gen list -> ?uses:'a list -> 'a -> 'a -> 'a mterm_gen -> 'a assert_gen
val mk_specification : ?predicates:'a predicate_gen list -> ?definitions:'a definition_gen list -> ?lemmas:'a label_term_gen list -> ?theorems:'a label_term_gen list -> ?fails:'a fail_gen list -> ?variables:'a variable_gen list -> ?invariants:('a * 'a label_term_gen list) list -> ?effects:'a mterm_gen list -> ?postconditions:'a postcondition_gen list -> ?loc:Location.t -> unit -> 'a specification_gen
val mk_security_predicate : ?loc:Location.t -> security_node -> security_predicate
val mk_security_item : ?loc:Location.t -> lident -> security_predicate -> security_item
val mk_security : ?items:security_item list -> ?loc:Location.t -> unit -> security
val mk_var : ?invariants:'id label_term_gen list -> ?default:'id mterm_gen -> ?loc:Location.t -> 'id -> type_ -> type_ -> variable_kind -> 'id var_gen
val mk_enum : ?values:'id enum_item_gen list -> 'id -> 'id -> 'id enum_gen
val mk_enum_item : ?args:type_ list -> ?invariants:'id label_term_gen list -> 'id -> 'id enum_item_gen
val mk_asset : ?values:'id asset_item_gen list -> ?sort:'id list -> ?big_map:bool -> ?state:lident -> ?keys:Ident.ident list -> ?invariants:lident label_term_gen list -> ?init:'id mterm_gen list -> ?loc:Location.t -> 'id -> 'id asset_gen
val mk_asset_item : ?default:'id mterm_gen -> ?shadow:bool -> ?loc:Location.t -> 'id -> type_ -> type_ -> 'id asset_item_gen
val mk_record : ?fields:'id record_field_gen list -> ?pos:position -> ?loc:Location.t -> 'id -> 'id record_gen
val mk_record_field : ?loc:Location.t -> 'id -> type_ -> 'id record_field_gen
val mk_storage_item : ?const:bool -> ?ghost:bool -> ?loc:Location.t -> 'id -> model_type -> type_ -> 'id mterm_gen -> 'id storage_item_gen
val mk_function_struct : ?args:lident argument_gen list -> ?eargs:lident argument_gen list -> ?loc:Location.t -> lident -> lident mterm_gen -> function_struct
val mk_function : ?spec:'id specification_gen -> 'id function_node_gen -> 'id function__gen
val mk_signature : ?args:'id argument_gen list -> ?ret:type_ -> 'id -> 'id signature_gen
val mk_api_item : api_storage_node -> api_loc -> api_storage
val mk_model : ?parameters:lident parameter_gen list -> ?metadata:metadata_kind -> ?api_items:api_storage list -> ?api_verif:api_verif list -> ?decls:lident decl_node_gen list -> ?functions:lident function__gen list -> ?storage:lident storage_gen -> ?specification:lident specification_gen -> ?security:security -> ?loc:Location.t -> lident -> model
val mktype : ?annot:lident -> ntype -> type_
val get_ntype : (ntype * 'a) -> ntype
val get_atype : ('a * lident option) -> lident option
val tunit : type_
val tbool : type_
val tnat : type_
val tint : type_
val tstring : type_
val tbytes : type_
val ttez : type_
val tduration : type_
val tkey : type_
val tkeyhash : type_
val tdate : type_
val ttimestamp : type_
val taddress : type_
val tenum : lident -> type_
val tstate : type_
val tstorage : type_
val trecord : lident -> type_
val toption : type_ -> type_
val tset : type_ -> type_
val tlist : type_ -> type_
val tbmap : bool -> type_ -> type_ -> type_
val tmap : type_ -> type_ -> type_
val tbig_map : type_ -> type_ -> type_
val tor : type_ -> type_ -> type_
val tlambda : type_ -> type_ -> type_
val ttuple : type_ list -> type_
val trat : type_
val toperation : type_
val tsignature : type_
val tcontract : type_ -> type_
val tticket : type_ -> type_
val tsapling_state : int -> type_
val tsapling_transaction : int -> type_
val tchainid : type_
val tbls12_381_fr : type_
val tbls12_381_g1 : type_
val tbls12_381_g2 : type_
val tnever : type_
val tasset : lident -> type_
val tcollection : lident -> type_
val taggregate : lident -> type_
val tpartition : lident -> type_
val tview : lident -> type_
val toperations : type_
val tmetadata : type_
val mk_bool : bool -> 'a mterm_gen
val mk_string : string -> 'a mterm_gen
val mk_bytes : string -> 'a mterm_gen
val mk_bnat : Core.big_int -> 'a mterm_gen
val mk_nat : int -> 'a mterm_gen
val mk_bint : Core.big_int -> 'a mterm_gen
val mk_int : int -> 'a mterm_gen
val mk_address : string -> 'a mterm_gen
val unit : 'a mterm_gen
val mk_date : Core.date -> 'a mterm_gen
val mk_duration : Core.duration -> 'a mterm_gen
val mtrue : 'a mterm_gen
val mfalse : 'a mterm_gen
val mnow : 'a mterm_gen
val mtransferred : 'a mterm_gen
val mcaller : 'a mterm_gen
val mbalance : 'a mterm_gen
val msource : 'a mterm_gen
val mselfaddress : 'a mterm_gen
val mchainid : 'a mterm_gen
val mmetadata : 'a mterm_gen
val mlevel : 'a mterm_gen
val mk_mvar : 'a -> type_ -> 'a mterm_gen
val mk_pvar : 'a -> type_ -> 'a mterm_gen
val mk_svar : 'a -> type_ -> 'a mterm_gen
val mk_state_var : 'a -> string Location.loced mterm_gen
val mk_enum_value : ?args:'a mterm_gen list -> 'a -> Ident.ident Location.loced -> 'a mterm_gen
val mk_state_value : 'a -> 'a mterm_gen
val mk_btez : Core.big_int -> 'a mterm_gen
val mk_tez : int -> 'a mterm_gen
val mk_tuple : mterm list -> lident mterm_gen
val mk_letin : 'a -> 'a mterm_gen -> 'a mterm_gen -> 'a mterm_gen
val mk_tupleaccess : int -> mterm -> lident mterm_gen
val mk_optget : mterm -> lident mterm_gen
val mk_abs : mterm -> lident mterm_gen
val mk_nat_to_int : mterm -> lident mterm_gen
val mk_some : 'a mterm_gen -> 'a mterm_gen
val mk_left : type_ -> 'a mterm_gen -> 'a mterm_gen
val mk_right : type_ -> 'a mterm_gen -> 'a mterm_gen
val mk_none : type_ -> 'a mterm_gen
val mk_rat : int -> int -> lident mterm_gen
val mk_metadata : ('a mterm_gen * 'a mterm_gen) list -> 'a mterm_gen
val fail : string -> 'a mterm_gen
val failg : 'a mterm_gen -> 'a mterm_gen
val failc : 'a fail_type_gen -> 'a mterm_gen
val mnot : 'a mterm_gen -> 'a mterm_gen
val seq : 'a mterm_gen list -> 'a mterm_gen
val skip : 'a mterm_gen
val operations : 'a mterm_gen
val cmp_ident : Ident.ident -> Ident.ident -> bool
val cmp_big_int : Core.big_int -> Core.big_int -> bool
val cmp_int : int -> int -> bool
val cmp_lident : lident -> lident -> bool
val cmp_bool : bool -> bool -> bool
val cmp_assign_op : assignment_operator -> assignment_operator -> bool
val cmp_currency : currency -> currency -> bool
val cmp_container : container -> container -> bool
val cmp_btyp : btyp -> btyp -> bool
val cmp_vset : vset -> vset -> bool
val cmp_trtyp : trtyp -> trtyp -> bool
val cmp_comparison_operator : comparison_operator -> comparison_operator -> bool
val cmp_rat_arith_op : rat_arith_op -> rat_arith_op -> bool
val cmp_entry_description : entry_description -> entry_description -> bool
val cmp_security_role : lident -> lident -> bool
val cmp_security_entry : security_entry -> security_entry -> bool
val cmp_fail_type : ('id mterm_gen -> 'id mterm_gen -> bool) -> 'id fail_type_gen -> 'id fail_type_gen -> bool
val cmp_ntype : ntype -> ntype -> bool
val cmp_type : ?with_annot:bool -> type_ -> type_ -> bool
val cmp_pattern_node : (lident -> lident -> bool) -> lident pattern_node -> lident pattern_node -> bool
val cmp_pattern : lident pattern_gen -> lident pattern_gen -> bool
val cmp_for_ident : ('id -> 'id -> bool) -> 'id for_ident_gen -> 'id for_ident_gen -> bool
val cmp_mterm_node : (mterm -> mterm -> bool) -> (lident -> lident -> bool) -> (lident, mterm) mterm_node -> (lident, mterm) mterm_node -> bool
val cmp_mterm : mterm -> mterm -> bool
val cmp_container_kind : api_container_kind -> api_container_kind -> bool
val cmp_api_item_node : api_storage_node -> api_storage_node -> bool
val cmp_api_loc : api_loc -> api_loc -> bool
val cmp_api_storage : api_storage -> api_storage -> bool
val cmp_api_verif : api_verif -> api_verif -> bool
val map_ptyp : (type_ -> type_) -> ntype -> ntype
val map_type : (type_ -> type_) -> type_ -> type_
val map_for_ident : ('id -> 'id) -> 'id for_ident_gen -> 'id for_ident_gen
val map_assign_kind : (Ident.ident -> Ident.ident) -> ('id -> 'id) -> ('a -> 'b) -> ('id, 'a) assign_kind_gen -> ('id, 'b) assign_kind_gen
val map_var_kind : ('a -> 'b) -> 'a var_kind_gen -> 'b var_kind_gen
val map_temp : (Ident.ident -> Ident.ident) -> temp -> temp
val map_delta : delta -> delta
val map_container_kind : (Ident.ident -> Ident.ident) -> ('a -> 'b) -> 'a container_kind_gen -> 'b container_kind_gen
val map_iter_container_kind : (Ident.ident -> Ident.ident) -> ('a -> 'b) -> 'a iter_container_kind_gen -> 'b iter_container_kind_gen
val map_transfer_kind : (Ident.ident -> Ident.ident) -> (type_ -> type_) -> ('a -> 'b) -> 'a transfer_kind_gen -> 'b transfer_kind_gen
val map_term_node_internal : (Ident.ident -> Ident.ident) -> ('id -> 'id) -> (type_ -> type_) -> ('id mterm_gen -> 'id mterm_gen) -> ('id, 'id mterm_gen) mterm_node -> ('id, 'id mterm_gen) mterm_node
val map_gen_mterm : ('a -> ('id, 'id mterm_gen) mterm_node -> ('id, 'id mterm_gen) mterm_node) -> 'a -> (type_ -> type_) -> 'id mterm_gen -> 'id mterm_gen
val map_mterm : (lident mterm_gen -> lident mterm_gen) -> ?ft:(type_ -> type_) -> mterm -> lident mterm_gen
type ('id, 't) ctx_model_gen = {
  1. formula : bool;
  2. fs : 'id function_struct_gen option;
  3. label : 'id option;
  4. spec_id : 'id option;
  5. invariant_id : 'id option;
  6. custom : 't;
}
type ctx_model = (lident, unit) ctx_model_gen
val mk_ctx_model : ?formula:bool -> ?fs:'id function_struct_gen -> ?label:'id -> ?spec_id:'id -> ?invariant_id:'id -> 't -> ('id, 't) ctx_model_gen
val map_mterm_model_exec : 't -> ((lident, 't) ctx_model_gen -> mterm -> mterm) -> model -> model
val map_specification : (lident, 't) ctx_model_gen -> ((lident, 't) ctx_model_gen -> mterm -> mterm) -> specification -> specification
val map_mterm_model_formula : 't -> ((lident, 't) ctx_model_gen -> mterm -> mterm) -> model -> model
val map_mterm_model_gen : 't -> ((lident, 't) ctx_model_gen -> mterm -> mterm) -> model -> model
val map_mterm_model : ((lident, unit) ctx_model_gen -> mterm -> mterm) -> model -> model
val fold_assign_kind : ('a -> 'b -> 'a) -> 'a -> ('c, 'b) assign_kind_gen -> 'a
val fold_var_kind : ('a -> 'b -> 'a) -> 'a -> 'b var_kind_gen -> 'a
val fold_container_kind : ('a -> 'b -> 'a) -> 'a -> 'b container_kind_gen -> 'a
val fold_iter_container_kind : ('a -> 'b -> 'a) -> 'a -> 'b iter_container_kind_gen -> 'a
val fold_transfer_kind : ('a -> 'b -> 'a) -> 'a -> 'b transfer_kind_gen -> 'a
val fold_term : ('a -> 'id mterm_gen -> 'a) -> 'a -> 'id mterm_gen -> 'a
val fold_map_term_list : ('a -> 'b -> 'term * 'a) -> 'a -> 'b list -> 'term list * 'a
val fold_map_assign_kind : ('a -> 'b -> 'c * 'a) -> 'a -> ('d, 'b) assign_kind_gen -> ('d, 'c) assign_kind_gen * 'a
val fold_map_var_kind : ('a -> 'b -> 'c * 'a) -> 'a -> 'b var_kind_gen -> 'c var_kind_gen * 'a
val fold_map_container_kind : ('a -> 'b -> 'c * 'a) -> 'a -> 'b container_kind_gen -> 'c container_kind_gen * 'a
val fold_map_iter_container_kind : ('a -> 'b -> 'c * 'a) -> 'a -> 'b iter_container_kind_gen -> 'c iter_container_kind_gen * 'a
val fold_map_transfer_kind : ('a -> 'b -> 'c * 'a) -> 'a -> 'b transfer_kind_gen -> 'c transfer_kind_gen * 'a
val fold_map_term : (('id, 'id mterm_gen) mterm_node -> 'id mterm_gen) -> ('a -> 'id mterm_gen -> 'id mterm_gen * 'a) -> 'a -> 'id mterm_gen -> 'id mterm_gen * 'a
val fold_left : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
val fold_label_term : ('id, 't) ctx_model_gen -> (('id, 't) ctx_model_gen -> 'a -> 'id mterm_gen -> 'a) -> 'id label_term_gen -> 'a -> 'a
val fold_specification : ('id, 't) ctx_model_gen -> (('id, 't) ctx_model_gen -> 'a -> 'id mterm_gen -> 'a) -> 'id specification_gen -> 'a -> 'a
val fold_model : ((lident, unit) ctx_model_gen -> 'a -> lident mterm_gen -> 'a) -> lident model_gen -> 'a -> 'a
type kind_ident =
  1. | KIarchetype
  2. | KIparameter
  3. | KIdeclvarname
  4. | KIassetname
  5. | KIassetfield
  6. | KIassetstate
  7. | KIassetinit
  8. | KIrecordname
  9. | KIrecordfield
  10. | KIparamlambda
  11. | KIenumname
  12. | KIenumvalue
  13. | KIcontractname
  14. | KIcontractentry
  15. | KIstoragefield
  16. | KIentry
  17. | KIfunction
  18. | KIgetter
  19. | KIview
  20. | KIargument
  21. | KIlocalvar
  22. | KIlabel
  23. | KIpredicate
  24. | KIdefinition
  25. | KIdefinitionvar
  26. | KIinvariant
  27. | KIpostcondition
  28. | KIpostconditionuse
  29. | KIfaillabel
  30. | KIfailfid
  31. | KIfailarg
  32. | KIsecurityad
  33. | KIsecurityrole
  34. | KIsecurityentry
  35. | KImterm
val map_model : (kind_ident -> Ident.ident -> Ident.ident) -> (type_ -> type_) -> (mterm -> mterm) -> model -> model
val replace_ident_model : (kind_ident -> Ident.ident -> Ident.ident) -> model -> model
val merge_seq : mterm -> mterm -> mterm
val extract_list : mterm -> mterm -> mterm list
type effect =
  1. | Eadded of Ident.ident
  2. | Eremoved of Ident.ident
  3. | Eupdated of Ident.ident
val show_effect : effect -> Ppx_deriving_runtime.string
module Utils : sig ... end
OCaml

Innovation. Community. Security.