38 |
39 |
39 val conj = Const("op &", [oT,oT]--->oT) |
40 val conj = Const("op &", [oT,oT]--->oT) |
40 and disj = Const("op |", [oT,oT]--->oT) |
41 and disj = Const("op |", [oT,oT]--->oT) |
41 and imp = Const("op -->", [oT,oT]--->oT); |
42 and imp = Const("op -->", [oT,oT]--->oT); |
42 |
43 |
|
44 fun dest_imp (Const("op -->",_) $ A $ B) = (A, B) |
|
45 | dest_imp t = raise TERM ("dest_imp", [t]); |
|
46 |
43 fun eq_const T = Const ("op =", [T, T] ---> oT); |
47 fun eq_const T = Const ("op =", [T, T] ---> oT); |
44 fun mk_eq (t, u) = eq_const (fastype_of t) $ t $ u; |
48 fun mk_eq (t, u) = eq_const (fastype_of t) $ t $ u; |
45 |
49 |
46 fun all_const T = Const ("All", [T --> oT] ---> oT); |
50 fun all_const T = Const ("All", [T --> oT] ---> oT); |
47 fun mk_all (Free(x,T),P) = all_const T $ (absfree (x,T,P)); |
51 fun mk_all (Free(x,T),P) = all_const T $ (absfree (x,T,P)); |