]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/cic_disambiguation/disambiguateChoices.ml
Pruning candidates in the applicative case for equalities.
[helm.git] / helm / software / components / cic_disambiguation / disambiguateChoices.ml
index ed3f82fe8ecd2a0ce16b5034ccd41d7a8d12ac2b..bc82e60ffa921156f319f91b2c3e08b27b0795f2 100644 (file)
@@ -46,7 +46,8 @@ let lookup_num_by_dsc dsc =
 
 let mk_choice  ~mk_appl ~mk_implicit ~term_of_uri (dsc, args, appl_pattern)=
   dsc,
-  (fun env _ cic_args ->
+  `Sym_interp
+  (fun cic_args ->
     let env',rest =
       let names =
         List.map (function CicNotationPt.IdentArg (_, name) -> name) args
@@ -74,11 +75,10 @@ let mk_choice  ~mk_appl ~mk_implicit ~term_of_uri (dsc, args, appl_pattern)=
        | _::_ -> mk_appl (combined::rest))
 
 let lookup_symbol_by_dsc ~mk_appl ~mk_implicit ~term_of_uri symbol dsc =
+  let interpretations = TermAcicContent.lookup_interpretations ~sorted:false symbol in
   try
-    mk_choice~mk_appl ~mk_implicit ~term_of_uri 
-      (List.find
-        (fun (dsc', _, _) -> dsc = dsc')
-        (TermAcicContent.lookup_interpretations symbol))
+    mk_choice ~mk_appl ~mk_implicit ~term_of_uri 
+      (List.find (fun (dsc', _, _) -> dsc = dsc') interpretations)
   with TermAcicContent.Interpretation_not_found | Not_found ->
     raise (Choice_not_found (lazy (sprintf "Symbol %s, dsc %s" symbol dsc)))