aboutsummaryrefslogtreecommitdiffhomepage
path: root/plugins/interface/dad.ml
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/interface/dad.ml')
-rw-r--r--plugins/interface/dad.ml32
1 files changed, 16 insertions, 16 deletions
diff --git a/plugins/interface/dad.ml b/plugins/interface/dad.ml
index c2ab2dc8d..fb0562c57 100644
--- a/plugins/interface/dad.ml
+++ b/plugins/interface/dad.ml
@@ -58,9 +58,9 @@ let zz = Util.dummy_loc;;
let rec get_subterm (depth:int) (path: int list) (constr:constr) =
match depth, path, kind_of_term constr with
0, l, c -> (constr,l)
- | n, 2::a::tl, App(func,arr) ->
+ | n, 2::a::tl, App(func,arr) ->
get_subterm (n - 2) tl arr.(a-1)
- | _,l,_ -> failwith (int_list_to_string
+ | _,l,_ -> failwith (int_list_to_string
"wrong path or wrong form of term"
l);;
@@ -93,12 +93,12 @@ let rec find_cmd (l:(string * dad_rule) list) env constr p p1 p2 =
if deg > length then
failwith "internal"
else
- let term_to_match, p_r =
- try
+ let term_to_match, p_r =
+ try
get_subterm (length - deg) p constr
with
Failure s -> failwith "internal" in
- let _, constr_pat =
+ let _, constr_pat =
intern_constr_pattern Evd.empty (Global.env())
((*ct_to_ast*) pat) in
let subst = matches constr_pat term_to_match in
@@ -136,26 +136,26 @@ let dad_tac display_function = function
l -> let p1, p2 = part_tac_args [] l in
(function g ->
let (p_a, p1prime, p2prime) = decompose_path (List.rev p1,p2) in
- (display_function
+ (display_function
(find_cmd (!dad_rule_list) (pf_env g)
(pf_concl g) p_a p1prime p2prime));
tclIDTAC g);;
*)
let dad_tac display_function p1 p2 g =
let (p_a, p1prime, p2prime) = decompose_path (p1,p2) in
- (display_function
+ (display_function
(find_cmd (!dad_rule_list) (pf_env g) (pf_concl g) p_a p1prime p2prime));
tclIDTAC g;;
(* Now we enter dad rule list management. *)
let add_dad_rule name patt p1 p2 depth pr command =
- dad_rule_list := (name,
+ dad_rule_list := (name,
(patt, p1, p2, depth, pr, command))::!dad_rule_list;;
let rec remove_if_exists name = function
[] -> false, []
- | ((a,b) as rule1)::tl -> if a = name then
+ | ((a,b) as rule1)::tl -> if a = name then
let result1, l = (remove_if_exists name tl) in
true, l
else
@@ -177,11 +177,11 @@ let constrain ((n : patvar),(pat : constr_pattern)) sigma =
if List.mem_assoc n sigma then
if pat = (List.assoc n sigma) then sigma
else failwith "internal"
- else
+ else
(n,pat)::sigma
-
+
(* This function is inspired from matches_core in pattern.ml *)
-let more_general_pat pat1 pat2 =
+let more_general_pat pat1 pat2 =
let rec match_rec sigma p1 p2 =
match p1, p2 with
| PMeta (Some n), m -> constrain (n,m) sigma
@@ -203,7 +203,7 @@ let more_general_pat pat1 pat2 =
| PApp (c1,arg1), PApp (c2,arg2) ->
(try array_fold_left2 match_rec (match_rec sigma c1 c2) arg1 arg2
with Invalid_argument _ -> failwith "internal")
- | _ -> failwith "unexpected case in more_general_pat" in
+ | _ -> failwith "unexpected case in more_general_pat" in
try let _ = match_rec [] pat1 pat2 in true
with Failure "internal" -> false;;
@@ -214,7 +214,7 @@ let more_general r1 r2 =
(more_general_pat patt1 patt2) &
(is_prefix p11 p21) & (is_prefix p12 p22);;
-let not_less_general r1 r2 =
+let not_less_general r1 r2 =
not (match r1,r2 with
(_,(patt1,p11,p12,_,_,_)),
(_,(patt2,p21,p22,_,_,_)) ->
@@ -235,7 +235,7 @@ let rec add_in_list_sorting rule1 = function
rule1::this_list
and add_in_list_sorting_aux rule1 = function
[] -> []
- | b::tl ->
+ | b::tl ->
if more_general rule1 b then
b::(add_in_list_sorting rule1 tl)
else
@@ -245,7 +245,7 @@ and add_in_list_sorting_aux rule1 = function
| _ -> rule1::tl2);;
let rec sort_list = function
- [] -> []
+ [] -> []
| a::l -> add_in_list_sorting a (sort_list l);;
let mk_dad_meta n = CPatVar (zz,(true,Nameops.make_ident "DAD" (Some n)));;