let kind',depth = !!kind in
(match depth with
None -> [],[],[]
- | Some d -> [],[kind',d],[])
+ | Some d -> [],[kind',Some d],[])
| C.Sort s ->
(match kind with
Backbone _
let kind',depth = !!kind in
(match depth with
None -> assert false
- | Some d -> [],[],[kind',d,s'])
+ | Some d -> [],[],[kind',Some d,s'])
| _ -> [],[],[])
| C.Meta _
| C.Implicit -> assert false
(fun i (_,t) -> i @@ (process_type_aux (soften_classification kind) t))
([],[],[])
in
- process_type_aux (Backbone 0) (CicMiniReduction.letin_nf term),
- (None,None,None)
+ let obj_constraints,rel_constraints,sort_constraints =
+ process_type_aux (Backbone 0) (CicMiniReduction.letin_nf term)
+ in
+ (obj_constraints,rel_constraints,sort_constraints),
+ (Some obj_constraints,Some rel_constraints,Some sort_constraints)
;;
(*CSC: Debugging only *)
prerr_endline "Constraints on Rels:" ;
List.iter
(function (s,n) ->
- prerr_endline (s ^ " " ^ string_of_int n)) rels ;
+ prerr_endline
+ (s ^ " " ^ (match n with Some n' -> string_of_int n' | None -> "NULL"))
+ ) rels ;
prerr_endline "Constraints on Sorts:" ;
List.iter
(function (s1,n,s2) ->
- prerr_endline (s1 ^ " " ^ string_of_int n ^ " " ^ s2)) sorts ;
+ prerr_endline
+ (s1 ^ " " ^ (match n with Some n' -> string_of_int n' | None -> "NULL") ^
+ " " ^ s2)
+ ) sorts ;
+ prerr_endline "The \"only\" constraints are the same." ;
res
;;
val get_constraints:
Cic.term ->
-(*
- MQueryGenerator.must_restrictions * MQueryGenerator.can_restrictions
-*)
- ((string * string * int option) list * (string * int) list *
- (string * int * string) list) *
- ((string * string * int option) list option * (string * int) list option *
- (string * int * string) list option)
+ MQueryGenerator.must_restrictions * MQueryGenerator.only_restrictions