]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_notation/cicNotationFwd.ml
added homepage URL, now we have one
[helm.git] / helm / ocaml / cic_notation / cicNotationFwd.ml
index 10bab9e36fb3bcaedd333aec34ec64610077164d..4f17e80496c9a9b44831e4fec56d8754170e2309 100644 (file)
@@ -23,6 +23,8 @@
  * http://helm.cs.unibo.it/
  *)
 
+open Printf
+
 open CicNotationEnv
 open CicNotationPt
 
@@ -211,7 +213,6 @@ let instantiate_level2 env term =
         | [] -> assert false (* as above *)
         | (name :: _) as names ->
             let rec instantiate_fold_left acc env' =
-              prerr_endline "instantiate_fold_left";
               match lookup_value env' name with
               | ListValue (_ :: _) ->
                   instantiate_fold_left 
@@ -232,7 +233,6 @@ let instantiate_level2 env term =
         | [] -> assert false (* as above *)
         | (name :: _) as names ->
             let rec instantiate_fold_right env' =
-              prerr_endline "instantiate_fold_right";
               match lookup_value env' name with
               | ListValue (_ :: _) ->
                   let acc = instantiate_fold_right (tail_names names env') in
@@ -242,7 +242,25 @@ let instantiate_level2 env term =
               | _ -> assert false
             in
             instantiate_fold_right env)
+    | If (_, p_true, p_false) as t ->
+        aux env (CicNotationUtil.find_branch (Magic t))
+    | Fail -> assert false
     | _ -> assert false
   in
   aux env term
 
+let instantiate_appl_pattern env appl_pattern =
+  let lookup name =
+    try List.assoc name env
+    with Not_found ->
+      prerr_endline (sprintf "Name %s not found" name);
+      assert false
+  in
+  let rec aux = function
+    | UriPattern uri -> CicUtil.term_of_uri uri
+    | ImplicitPattern -> Cic.Implicit None
+    | VarPattern name -> lookup name
+    | ApplPattern terms -> Cic.Appl (List.map aux terms)
+  in
+  aux appl_pattern
+