]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/lambda-delta/src/xml/xmlCrg.ml
New behaviour of fo_unif: in case of ?f args == t args'
[helm.git] / helm / software / lambda-delta / src / xml / xmlCrg.ml
index 7b5dd8ddc5b65538befee7e3c687b140ea021bf0..45e33178a4ffacc651b4f1eb897e80e6326d36b1 100644 (file)
@@ -32,7 +32,7 @@ let list_rev_iter map e ns l out tab =
            pp_lenv print_string e; print_string " |- "; 
           pp_term print_string hd; print_newline ();
 *)
-          map e hd out tab; f (D.push2 C.err C.start e n ~t:hd ())
+          map e hd out tab; f (D.push2 C.err C.start e ~attr:n ~t:hd ())
        in
        aux err f e (ns, tl) 
       | _                 -> err ()
@@ -73,7 +73,7 @@ let rec exp_term e t out tab = match t with
       XL.tag XL.cast attrs ~contents:(exp_term e u) out tab;
       exp_term e t out tab
    | D.TAppl (a, vs, t)   ->
-      let attrs = [XL.arity (List.length vs)] in
+      let attrs = [XL.arity vs] in
       XL.tag XL.appl attrs ~contents:(list_iter (exp_term e) vs) out tab;
       exp_term e t out tab
    | D.TProj (a, lenv, t) ->
@@ -91,15 +91,15 @@ and exp_bind e a b out tab =
    let a, ns = Y.get_names f a in 
    match b with
       | D.Abst (n, ws) ->
-        let e = D.push_bind C.start e a (D.Abst (n, ws)) in
-        let attrs = [XL.level n; XL.name ns; XL.mark a; XL.arity (List.length ws)] in
+        let e = D.push_bind C.start e a (D.Abst (n, [])) in
+        let attrs = [XL.level n; XL.name ns; XL.mark a; XL.arity ws] in
          XL.tag XL.abst attrs ~contents:(list_rev_iter exp_term e ns ws) out tab
       | D.Abbr vs      ->
-         let e = D.push_bind C.start e a (D.Abbr vs) in
-         let attrs = [XL.name ns; XL.mark a; XL.arity (List.length vs)] in
+         let e = D.push_bind C.start e a (D.Abbr []) in
+         let attrs = [XL.name ns; XL.mark a; XL.arity vs] in
          XL.tag XL.abbr attrs ~contents:(list_rev_iter exp_term e ns vs) out tab
       | D.Void n       ->
-         let attrs = [XL.name a; XL.mark a; XL.arity n] in
+         let attrs = [XL.name a; XL.mark a; XL.arity ~n []] in
          XL.tag XL.void attrs out tab
 
 and exp_eproj e a lenv out tab =