diff -r 6a7a8c51d42f -r d9974794436a PIPBasics.thy --- a/PIPBasics.thy Mon Jun 27 14:08:21 2016 +0100 +++ b/PIPBasics.thy Mon Jul 04 14:04:11 2016 +0100 @@ -2844,17 +2844,12 @@ sublocale valid_trace < rtree_RAG?: rtree "RAG s" using rtree_RAG . -sublocale valid_trace < fsbtRAGs?: fsubtree "RAG s" -proof - - show "fsubtree (RAG s)" - proof(intro_locales) - show "fbranch (RAG s)" using finite_fbranchI[OF finite_RAG] . - next - show "fsubtree_axioms (RAG s)" - proof(unfold fsubtree_axioms_def) - from wf_RAG show "wf (RAG s)" . - qed - qed +sublocale valid_trace < fsbtRAGs?: fgraph "RAG s" +proof + show "\x\Range (RAG s). finite (children (RAG s) x)" + by (rule finite_fbranchI[OF finite_RAG]) +next + show "wf (RAG s)" using wf_RAG . qed subsection {* Derived properties for sub-graphs of RAG *} @@ -2897,36 +2892,31 @@ from acyclic_tRAG show "acyclic (tRAG s)" . qed -sublocale valid_trace < fsbttRAGs?: fsubtree "tRAG s" -proof - - have "fsubtree (tRAG s)" - proof - - have "fbranch (tRAG s)" - proof(unfold tRAG_def, rule fbranch_compose) - show "fbranch (wRAG s)" +sublocale valid_trace < fsbttRAGs?: fgraph "tRAG s" +proof + show "\x\Range (tRAG s). finite (children (tRAG s) x)" + proof(unfold tRAG_def, rule fbranch_compose) + show "\x\Range (wRAG s). finite (children (wRAG s) x)" proof(rule finite_fbranchI) from finite_RAG show "finite (wRAG s)" by (unfold RAG_split, auto) qed next - show "fbranch (hRAG s)" + show "\x\Range (hRAG s). finite (children (hRAG s) x)" proof(rule finite_fbranchI) from finite_RAG show "finite (hRAG s)" by (unfold RAG_split, auto) qed - qed - moreover have "wf (tRAG s)" - proof(rule wf_subset) + qed +next + show "wf (tRAG s)" + proof(rule wf_subset) show "wf (RAG s O RAG s)" using wf_RAG by (fold wf_comp_self, simp) - next + next show "tRAG s \ (RAG s O RAG s)" by (unfold tRAG_alt_def, auto) - qed - ultimately show ?thesis - by (unfold fsubtree_def fsubtree_axioms_def,auto) qed - from this[folded tRAG_def] show "fsubtree (tRAG s)" . qed section {* Chain to readys *}