]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/helena/src/basic_rg/brg.ml
- siimplifified RTM (one register less) now counts x-steps.
[helm.git] / helm / software / helena / src / basic_rg / brg.ml
index 02bbc1430ea2d7c6dfc5b9ee1e1700a4346ca29e..98d9fc26fe879c8b5862502a4006d9710a3ca589 100644 (file)
@@ -10,7 +10,7 @@
       V_______________________________________________________________ *)
 
 (* kernel version: basic, relative, global *)
-(* note          : ufficial basic \lambda\delta *) 
+(* note          : ufficial basic \lambda\delta version 3 *) 
 
 module N = Layer
 module E = Entity
@@ -18,9 +18,10 @@ module E = Entity
 type uri = E.uri
 type attrs = E.node_attrs
 
-type bind = Void                   (*             *)
-          | Abst of N.layer * term (* layer, type *)
-          | Abbr of term           (* body        *)
+(* x-reduced abstractions are output by RTM only *)
+type bind = Void                          (*                         *)
+          | Abst of bool * N.layer * term (* x-reduced?, layer, type *)
+          | Abbr of term                  (* body                    *)
 
 and term = Sort of attrs * int         (* attrs, hierarchy index *)
          | LRef of attrs * int         (* attrs, position index *)
@@ -39,7 +40,7 @@ type manager = (N.status -> entity -> bool) * (unit -> unit)
 
 (* Currified constructors ***************************************************)
 
-let abst n w = Abst (n, w)
+let abst x n w = Abst (x, n, w)
 
 let abbr v = Abbr v
 
@@ -51,9 +52,9 @@ let appl a u t = Appl (a, u, t)
 
 let bind a b t = Bind (a, b, t)
 
-let bind_abst n a u t = Bind (a, Abst (n, u), t)
+let bind_abst x n a u t = Bind (a, Abst (x, n, u), t)
 
-let bind_abbr a v t = Bind (a, Abbr v, t)
+let bind_abbr a u t = Bind (a, Abbr u, t)
 
 let bind_void a t = Bind (a, Void, t)