equal
deleted
inserted
replaced
8 may be a stack of pending proofs. |
8 may be a stack of pending proofs. |
9 *) |
9 *) |
10 |
10 |
11 signature OLD_GOALS = |
11 signature OLD_GOALS = |
12 sig |
12 sig |
|
13 val mk_defpair: term * term -> string * term |
13 val strip_context: term -> (string * typ) list * term list * term |
14 val strip_context: term -> (string * typ) list * term list * term |
14 val metahyps_thms: int -> thm -> thm list option |
15 val metahyps_thms: int -> thm -> thm list option |
15 val METAHYPS: (thm list -> tactic) -> int -> tactic |
16 val METAHYPS: (thm list -> tactic) -> int -> tactic |
16 val simple_read_term: theory -> typ -> string -> term |
17 val simple_read_term: theory -> typ -> string -> term |
17 val read_term: theory -> string -> term |
18 val read_term: theory -> string -> term |
64 end; |
65 end; |
65 |
66 |
66 structure OldGoals: OLD_GOALS = |
67 structure OldGoals: OLD_GOALS = |
67 struct |
68 struct |
68 |
69 |
|
70 fun mk_defpair (lhs, rhs) = |
|
71 (case Term.head_of lhs of |
|
72 Const (name, _) => |
|
73 (Long_Name.base_name name ^ "_def", Logic.mk_equals (lhs, rhs)) |
|
74 | _ => raise TERM ("Malformed definition: head of lhs not a constant", [lhs, rhs])); |
|
75 |
|
76 |
69 (**** METAHYPS -- tactical for using hypotheses as meta-level assumptions |
77 (**** METAHYPS -- tactical for using hypotheses as meta-level assumptions |
70 METAHYPS (fn prems => tac prems) i |
78 METAHYPS (fn prems => tac prems) i |
71 |
79 |
72 converts subgoal i, of the form !!x1...xm. [| A1;...;An] ==> A into a new |
80 converts subgoal i, of the form !!x1...xm. [| A1;...;An] ==> A into a new |
73 proof state A==>A, supplying A1,...,An as meta-level assumptions (in |
81 proof state A==>A, supplying A1,...,An as meta-level assumptions (in |