200 end; |
200 end; |
201 |
201 |
202 exception FN_LG of term; |
202 exception FN_LG of term; |
203 |
203 |
204 fun fn_lg (t as Const(f,tp)) (lg,seen) = |
204 fun fn_lg (t as Const(f,tp)) (lg,seen) = |
205 if is_hol_fn tp then (upgrade_lg HOL lg, t ins seen) else (lg, t ins seen) |
205 if is_hol_fn tp then (upgrade_lg HOL lg, insert (op =) t seen) else (lg, insert (op =) t seen) |
206 | fn_lg (t as Free(f,tp)) (lg,seen) = |
206 | fn_lg (t as Free(f,tp)) (lg,seen) = |
207 if is_hol_fn tp then (upgrade_lg HOL lg, t ins seen) else (lg, t ins seen) |
207 if is_hol_fn tp then (upgrade_lg HOL lg, insert (op =) t seen) else (lg, insert (op =) t seen) |
208 | fn_lg (t as Var(f,tp)) (lg,seen) = |
208 | fn_lg (t as Var(f,tp)) (lg,seen) = |
209 if is_hol_fn tp then (upgrade_lg HOL lg,t ins seen) else (lg,t ins seen) |
209 if is_hol_fn tp then (upgrade_lg HOL lg,insert (op =) t seen) else (lg,insert (op =) t seen) |
210 | fn_lg (t as Abs(_,_,_)) (lg,seen) = (upgrade_lg HOLC lg,t ins seen) |
210 | fn_lg (t as Abs(_,_,_)) (lg,seen) = (upgrade_lg HOLC lg,insert (op =) t seen) |
211 | fn_lg f _ = raise FN_LG(f); |
211 | fn_lg f _ = raise FN_LG(f); |
212 |
212 |
213 |
213 |
214 fun term_lg [] (lg,seen) = (lg,seen) |
214 fun term_lg [] (lg,seen) = (lg,seen) |
215 | term_lg (tm::tms) (FOL,seen) = |
215 | term_lg (tm::tms) (FOL,seen) = |
224 | term_lg _ (lg,seen) = (lg,seen) |
224 | term_lg _ (lg,seen) = (lg,seen) |
225 |
225 |
226 exception PRED_LG of term; |
226 exception PRED_LG of term; |
227 |
227 |
228 fun pred_lg (t as Const(P,tp)) (lg,seen)= |
228 fun pred_lg (t as Const(P,tp)) (lg,seen)= |
229 if is_hol_pred tp then (upgrade_lg HOL lg, t ins seen) else (lg,t ins seen) |
229 if is_hol_pred tp then (upgrade_lg HOL lg, insert (op =) t seen) else (lg,insert (op =) t seen) |
230 | pred_lg (t as Free(P,tp)) (lg,seen) = |
230 | pred_lg (t as Free(P,tp)) (lg,seen) = |
231 if is_hol_pred tp then (upgrade_lg HOL lg, t ins seen) else (lg,t ins seen) |
231 if is_hol_pred tp then (upgrade_lg HOL lg, insert (op =) t seen) else (lg,insert (op =) t seen) |
232 | pred_lg (t as Var(_,_)) (lg,seen) = (upgrade_lg HOL lg, t ins seen) |
232 | pred_lg (t as Var(_,_)) (lg,seen) = (upgrade_lg HOL lg, insert (op =) t seen) |
233 | pred_lg P _ = raise PRED_LG(P); |
233 | pred_lg P _ = raise PRED_LG(P); |
234 |
234 |
235 |
235 |
236 fun lit_lg (Const("Not",_) $ P) (lg,seen) = lit_lg P (lg,seen) |
236 fun lit_lg (Const("Not",_) $ P) (lg,seen) = lit_lg P (lg,seen) |
237 | lit_lg P (lg,seen) = |
237 | lit_lg P (lg,seen) = |