aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Aspinall2001-08-31 19:43:04 +0000
committerDavid Aspinall2001-08-31 19:43:04 +0000
commit07e3176793d8dea355cfab10ccc02a244c20f54c (patch)
tree37bd5257aeba9ad2b5346aca6b3017644535a2ed
parent96ae6792b11e60ed344fde0da091ac0b71397761 (diff)
Add simulations of more qed commands, also sort and uniquify dependencies.
-rw-r--r--isa/depends.ML24
1 files changed, 20 insertions, 4 deletions
diff --git a/isa/depends.ML b/isa/depends.ML
index a18125a8..65e2b91f 100644
--- a/isa/depends.ML
+++ b/isa/depends.ML
@@ -70,15 +70,31 @@ fun new_thm_deps thms =
val header = "Proof General, the theorem dependencies are: \"";
val gra = map snd (Symtab.dest (fst (foldl make_deps_graph ((Symtab.empty, []),
map (#2 o #der o Thm.rep_thm) thms))));
- val deps = foldl (op@) ([],(map #parents gra))
+ val deps = sort_strings (foldl (op union) ([],(map #parents gra)))
val msg = header ^ (space_implode " " deps) ^ "\""
in priority msg end;
val old_qed = qed;
+fun qed name =
+ let val _ = old_qed name
+ val proved_thm = thm name
+ in new_thm_deps [proved_thm] end;
-fun qed s =
- let val _ = old_qed s
- val proved_thm = thm s
+val old_qed_goal = qed_goal;
+fun qed_goal name thy goal tacsf =
+ let val _ = old_qed_goal name thy goal tacsf
+ val proved_thm = thm name
in new_thm_deps [proved_thm] end;
+val old_qed_goalw = qed_goalw;
+fun qed_goalw name thy rews goal tacsf =
+ let val _ = old_qed_goalw name thy rews goal tacsf
+ val proved_thm = thm name
+ in new_thm_deps [proved_thm] end;
+(* FIXME: this one only in HOL?? *)
+val old_qed_spec_mp = qed_spec_mp;
+fun qed_spec_mp name =
+ let val _ = old_qed_spec_mp name
+ val proved_thm = thm name
+ in new_thm_deps [proved_thm] end;