equal
deleted
inserted
replaced
191 "atomic" indicates if the goal should be wrapped up in the function |
191 "atomic" indicates if the goal should be wrapped up in the function |
192 "Goal::prop=>prop" to avoid assumptions being returned separately. |
192 "Goal::prop=>prop" to avoid assumptions being returned separately. |
193 *) |
193 *) |
194 fun prepare_proof atomic rths chorn = |
194 fun prepare_proof atomic rths chorn = |
195 let val {sign, t=horn,...} = rep_cterm chorn; |
195 let val {sign, t=horn,...} = rep_cterm chorn; |
|
196 val _ = Term.no_dummy_patterns horn handle TERM (msg, _) => error msg; |
196 val (_,As,B) = Logic.strip_horn(horn); |
197 val (_,As,B) = Logic.strip_horn(horn); |
197 val atoms = atomic andalso |
198 val atoms = atomic andalso |
198 forall (fn t => not(Logic.is_implies t orelse Logic.is_all t)) As; |
199 forall (fn t => not(Logic.is_implies t orelse Logic.is_all t)) As; |
199 val (As,B) = if atoms then ([],horn) else (As,B); |
200 val (As,B) = if atoms then ([],horn) else (As,B); |
200 val cAs = map (cterm_of sign) As; |
201 val cAs = map (cterm_of sign) As; |