* [equality] defaults to physical equality
* [context] must be the context of [where]
*)
-let locate_in_term ?(equality=(==))what ~where context =
+let locate_in_term ?(equality=(fun _ -> (==))) what ~where context =
let add_ctx context name entry =
(Some (name, entry)) :: context in
let rec aux context where =
- if equality what where then [context,where]
+ if equality context what where then [context,where]
else
match where with
| Cic.Implicit _
in
aux context where
-(** locate_in_term equality what where context
+(** locate_in_conjecture equality what where context
* [what] must match a subterm of [where] according to [equality]
* It returns the matched terms together with their contexts in [where]
* [equality] defaults to physical equality
* [context] must be the context of [where]
*)
-let locate_in_conjecture ?(equality=(==)) what (_,context,ty) =
+let locate_in_conjecture ?(equality=fun _ -> (==)) what (_,context,ty) =
let context,res =
List.fold_right
(fun entry (context,res) ->
* [context] must be the context of [where]
*)
val locate_in_term:
- ?equality:(Cic.term -> Cic.term -> bool) -> Cic.term -> where:Cic.term ->
- Cic.context -> (Cic.context * Cic.term) list
+ ?equality:(Cic.context -> Cic.term -> Cic.term -> bool) ->
+ Cic.term -> where:Cic.term -> Cic.context -> (Cic.context * Cic.term) list
-(** locate_in_term equality what where context
+(** locate_in_conjecture equality what where context
* [what] must match a subterm of [where] according to [equality]
* It returns the matched terms together with their contexts in [where]
* [equality] defaults to physical equality
* [context] must be the context of [where]
*)
val locate_in_conjecture:
- ?equality:(Cic.term -> Cic.term -> bool) -> Cic.term -> Cic.conjecture ->
- (Cic.context * Cic.term) list
+ ?equality:(Cic.context -> Cic.term -> Cic.term -> bool) ->
+ Cic.term -> Cic.conjecture -> (Cic.context * Cic.term) list
(* saturate_term newmeta metasenv context ty *)
(* Given a type [ty] (a backbone), it returns its head and a new metasenv in *)