equal
deleted
inserted
replaced
58 |
58 |
59 (** goals **) |
59 (** goals **) |
60 |
60 |
61 (* |
61 (* |
62 -------- (init) |
62 -------- (init) |
63 C ==> #C |
63 C \<Longrightarrow> #C |
64 *) |
64 *) |
65 fun init C = Thm.instantiate ([], [((("A", 0), propT), C)]) Drule.protectI; |
65 fun init C = Thm.instantiate ([], [((("A", 0), propT), C)]) Drule.protectI; |
66 |
66 |
67 (* |
67 (* |
68 A1 ==> ... ==> An ==> C |
68 A1 \<Longrightarrow> ... \<Longrightarrow> An \<Longrightarrow> C |
69 ------------------------ (protect n) |
69 ------------------------ (protect n) |
70 A1 ==> ... ==> An ==> #C |
70 A1 \<Longrightarrow> ... \<Longrightarrow> An \<Longrightarrow> #C |
71 *) |
71 *) |
72 fun protect n th = Drule.comp_no_flatten (th, n) 1 Drule.protectI; |
72 fun protect n th = Drule.comp_no_flatten (th, n) 1 Drule.protectI; |
73 |
73 |
74 (* |
74 (* |
75 A ==> ... ==> #C |
75 A \<Longrightarrow> ... \<Longrightarrow> #C |
76 ---------------- (conclude) |
76 ---------------- (conclude) |
77 A ==> ... ==> C |
77 A \<Longrightarrow> ... \<Longrightarrow> C |
78 *) |
78 *) |
79 fun conclude th = Drule.comp_no_flatten (th, Thm.nprems_of th) 1 Drule.protectD; |
79 fun conclude th = Drule.comp_no_flatten (th, Thm.nprems_of th) 1 Drule.protectD; |
80 |
80 |
81 (* |
81 (* |
82 #C |
82 #C |