# HG changeset patch # User wenzelm # Date 1248464077 -7200 # Node ID bc02c5bfcb5b5b56bc312b12a8c25197bc12dde8 # Parent 893614e2c35c3d33f09e72fd6a7ef628368795db renamed functor SplitterFun to Splitter, require explicit theory; diff -r 893614e2c35c -r bc02c5bfcb5b src/FOL/simpdata.ML --- a/src/FOL/simpdata.ML Fri Jul 24 21:21:45 2009 +0200 +++ b/src/FOL/simpdata.ML Fri Jul 24 21:34:37 2009 +0200 @@ -95,27 +95,25 @@ (*** Case splitting ***) -structure SplitterData = - struct - structure Simplifier = Simplifier - val mk_eq = mk_eq +structure Splitter = Splitter +( + val thy = @{theory} + val mk_eq = mk_eq val meta_eq_to_iff = @{thm meta_eq_to_iff} - val iffD = @{thm iffD2} - val disjE = @{thm disjE} - val conjE = @{thm conjE} - val exE = @{thm exE} - val contrapos = @{thm contrapos} - val contrapos2 = @{thm contrapos2} - val notnotD = @{thm notnotD} - end; + val iffD = @{thm iffD2} + val disjE = @{thm disjE} + val conjE = @{thm conjE} + val exE = @{thm exE} + val contrapos = @{thm contrapos} + val contrapos2 = @{thm contrapos2} + val notnotD = @{thm notnotD} +); -structure Splitter = SplitterFun(SplitterData); - -val split_tac = Splitter.split_tac; +val split_tac = Splitter.split_tac; val split_inside_tac = Splitter.split_inside_tac; -val split_asm_tac = Splitter.split_asm_tac; -val op addsplits = Splitter.addsplits; -val op delsplits = Splitter.delsplits; +val split_asm_tac = Splitter.split_asm_tac; +val op addsplits = Splitter.addsplits; +val op delsplits = Splitter.delsplits; (*** Standard simpsets ***) diff -r 893614e2c35c -r bc02c5bfcb5b src/HOL/Tools/simpdata.ML --- a/src/HOL/Tools/simpdata.ML Fri Jul 24 21:21:45 2009 +0200 +++ b/src/HOL/Tools/simpdata.ML Fri Jul 24 21:34:37 2009 +0200 @@ -126,27 +126,25 @@ val safe_solver = mk_solver "HOL safe" safe_solver_tac; -structure SplitterData = -struct - structure Simplifier = Simplifier - val mk_eq = mk_eq - val meta_eq_to_iff = @{thm meta_eq_to_obj_eq} - val iffD = @{thm iffD2} - val disjE = @{thm disjE} - val conjE = @{thm conjE} - val exE = @{thm exE} - val contrapos = @{thm contrapos_nn} - val contrapos2 = @{thm contrapos_pp} - val notnotD = @{thm notnotD} -end; +structure Splitter = Splitter +( + val thy = @{theory} + val mk_eq = mk_eq + val meta_eq_to_iff = @{thm meta_eq_to_obj_eq} + val iffD = @{thm iffD2} + val disjE = @{thm disjE} + val conjE = @{thm conjE} + val exE = @{thm exE} + val contrapos = @{thm contrapos_nn} + val contrapos2 = @{thm contrapos_pp} + val notnotD = @{thm notnotD} +); -structure Splitter = SplitterFun(SplitterData); - -val split_tac = Splitter.split_tac; +val split_tac = Splitter.split_tac; val split_inside_tac = Splitter.split_inside_tac; -val op addsplits = Splitter.addsplits; -val op delsplits = Splitter.delsplits; +val op addsplits = Splitter.addsplits; +val op delsplits = Splitter.delsplits; (* integration of simplifier with classical reasoner *) diff -r 893614e2c35c -r bc02c5bfcb5b src/Provers/splitter.ML --- a/src/Provers/splitter.ML Fri Jul 24 21:21:45 2009 +0200 +++ b/src/Provers/splitter.ML Fri Jul 24 21:34:37 2009 +0200 @@ -11,6 +11,7 @@ signature SPLITTER_DATA = sig + val thy : theory val mk_eq : thm -> thm val meta_eq_to_iff: thm (* "x == y ==> x = y" *) val iffD : thm (* "[| P = Q; Q |] ==> P" *) @@ -40,18 +41,18 @@ val setup: theory -> theory end; -functor SplitterFun(Data: SPLITTER_DATA): SPLITTER = +functor Splitter(Data: SPLITTER_DATA): SPLITTER = struct val Const (const_not, _) $ _ = - ObjectLogic.drop_judgment (OldGoals.the_context ()) + ObjectLogic.drop_judgment Data.thy (#1 (Logic.dest_implies (Thm.prop_of Data.notnotD))); val Const (const_or , _) $ _ $ _ = - ObjectLogic.drop_judgment (OldGoals.the_context ()) + ObjectLogic.drop_judgment Data.thy (#1 (Logic.dest_implies (Thm.prop_of Data.disjE))); -val const_Trueprop = ObjectLogic.judgment_name (OldGoals.the_context ()); +val const_Trueprop = ObjectLogic.judgment_name Data.thy; fun split_format_err () = error "Wrong format for split rule";