]> matita.cs.unibo.it Git - helm.git/commitdiff
- handle metavariables: if at least one of them is present, then the
authorStefano Zacchiroli <zack@upsilon.cc>
Tue, 15 Mar 2005 08:27:10 +0000 (08:27 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Tue, 15 Mar 2005 08:27:10 +0000 (08:27 +0000)
  cardinality constraint is not enforce
- commented out debugging prints

helm/ocaml/tactics/metadataQuery.ml

index 0a1f1ee441e939f22e9364b1806c626db1ada685..8dcbcd08abd3e3d9d0d585c4aa390c46223e4e89 100644 (file)
@@ -64,9 +64,16 @@ let match_term ~(dbd:Mysql.dbd) ty =
   let constants_no =
     MetadataConstraints.StringSet.cardinal (MetadataConstraints.constants_of ty)
   in
+  let full_card =
+    if CicUtil.is_meta_closed ty then
+      Some (MetadataConstraints.Eq constants_no)
+    else
+      None  (* we already require a set of constants to appear, this additional
+             constraints is useless *)
+(*       MetadataConstraints.Gt (constants_no - 1) *)
+  in
   let constraints = List.map MetadataTypes.constr_of_metadata metadata in
-  Constr.at_least ~dbd ~full_card:(MetadataConstraints.Eq constants_no)
-    constraints
+  Constr.at_least ~dbd ?full_card constraints
 
 let ( ** ) x y = int_of_float ((float_of_int x) ** (float_of_int y))
 
@@ -154,7 +161,7 @@ let hint ~(dbd:Mysql.dbd) ?(facts=false) ?signature ((proof, goal) as status) =
   let hyp_constants =
     Constr.StringSet.diff (signature_of_hypothesis context) types_constants
   in
-Constr.StringSet.iter prerr_endline hyp_constants;
+(* Constr.StringSet.iter prerr_endline hyp_constants; *)
   let other_constants = Constr.StringSet.union sig_constants hyp_constants in
   let uris = 
     let pow = 2 ** (Constr.StringSet.cardinal other_constants) in
@@ -225,7 +232,7 @@ let experimental_hint
   let hyp_constants =
     Constr.StringSet.diff (signature_of_hypothesis context) types_constants
   in
-Constr.StringSet.iter prerr_endline hyp_constants;
+(* Constr.StringSet.iter prerr_endline hyp_constants; *)
   let other_constants = Constr.StringSet.union sig_constants hyp_constants in
   let uris = 
     let pow = 2 ** (Constr.StringSet.cardinal other_constants) in