X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fsoftware%2Fhelena%2Fsrc%2Fcommon%2Fentity.ml;h=ab99e24cd5641c0285e825cf858911c0127f0502;hb=1b4d894e7349bba991823249f1716fb8f18239b7;hp=d834ed53e3804ce5769210b674be0fe9e75621c8;hpb=2cf2e883f91164ce614bdc86b5c5e2419b98f68d;p=helm.git diff --git a/helm/software/helena/src/common/entity.ml b/helm/software/helena/src/common/entity.ml index d834ed53e..ab99e24cd 100644 --- a/helm/software/helena/src/common/entity.ml +++ b/helm/software/helena/src/common/entity.ml @@ -26,10 +26,13 @@ type meta = Main (* main object *) | Private (* private global definition *) type node_attrs = { - n_name: name option; (* name *) - n_apix: int; (* additional position index *) - n_main: arity; (* main arity *) - n_side: arity; (* side arity *) + n_apix: int; (* additional position index *) +} + +type bind_attrs = { + b_name: name option; (* name *) + b_main: arity; (* main arity *) + b_side: arity; (* side arity *) } type root_attrs = { @@ -45,8 +48,12 @@ type 'term entity = root_attrs * node_attrs * uri * 'term bind (* attrs, uri, bi (* helpers ******************************************************************) -let node_attrs ?name ?(main=(0,0)) ?(side=(0,0)) () = { - n_apix = 0; n_name = name; n_main = main; n_side = side; +let node_attrs ?(apix=0) () = { + n_apix = apix; +} + +let bind_attrs ?name ?(main=(0,0)) ?(side=(0,0)) () = { + b_name = name; b_main = main; b_side = side; } let root_attrs ?(meta=[]) ?info () = { @@ -55,17 +62,19 @@ let root_attrs ?(meta=[]) ?info () = { let empty_node = node_attrs () +let empty_bind = bind_attrs () + let empty_root = root_attrs () let common f (ra, na, u, _) = f ra na u let succ (sort, degr) = sort, succ degr -let compose av at = {av with n_main = at.n_main} +let compose av at = {av with b_main = at.b_main} -let shift av = {av with n_side = av.n_main} +let shift av = {av with b_side = av.b_main} -let rec name err f a = match a.n_name with +let rec name err f a = match a.b_name with | Some (n, r) -> f n r | None -> err ()