X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=components%2Ftactics%2Fparamodulation%2Findexing.ml;h=c74abe27d4605b8cf7b2638b826b8181d2bf77ca;hb=c515304b306f38ae7387aff6fe44e36fa9e7bfa5;hp=e7166324de60d735480374a21595b3c9b1af8318;hpb=af44f0cf5173825eb0cadd1967424315cebe9076;p=helm.git diff --git a/components/tactics/paramodulation/indexing.ml b/components/tactics/paramodulation/indexing.ml index e7166324d..c74abe27d 100644 --- a/components/tactics/paramodulation/indexing.ml +++ b/components/tactics/paramodulation/indexing.ml @@ -1049,6 +1049,7 @@ let build_newgoal context goal posu rule expansion = the negative equation "target" and one of the positive equations in "table" *) let superposition_left (metasenv, context, ugraph) table goal = + let names = Utils.names_of_context context in let proof,menv,eq,ty,l,r = open_goal goal in let c = !Utils.compare_terms l r in if c = Utils.Incomparable then @@ -1064,14 +1065,24 @@ let superposition_left (metasenv, context, ugraph) table goal = List.map (build_newgoal context goal Utils.Left Equality.SuperpositionLeft) expansionsr end else - let big,small,possmall = match c with - Utils.Gt -> (* prerr_endline "GT"; *) l,r,Utils.Right - | Utils.Lt -> (* prerr_endline "LT"; *) r,l,Utils.Left - | _ -> assert false - in - let expansions, _ = betaexpand_term menv context ugraph table 0 big in - List.map (build_newgoal context goal possmall Equality.SuperpositionLeft) expansions + | Utils.Gt -> (* prerr_endline "GT"; *) + let big,small,possmall = l,r,Utils.Right in + let expansions, _ = betaexpand_term menv context ugraph table 0 big in + List.map + (build_newgoal context goal possmall Equality.SuperpositionLeft) + expansions + | Utils.Lt -> (* prerr_endline "LT"; *) + let big,small,possmall = r,l,Utils.Left in + let expansions, _ = betaexpand_term menv context ugraph table 0 big in + List.map + (build_newgoal context goal possmall Equality.SuperpositionLeft) + expansions + | Utils.Eq -> [] + | _ -> + prerr_endline + ("NOT GT, LT NOR EQ : "^CicPp.pp l names^" - "^CicPp.pp r names); + assert false ;; (** demodulation, when the target is a goal *)