equal
deleted
inserted
replaced
4 Abstract syntax operations for FOL. |
4 Abstract syntax operations for FOL. |
5 *) |
5 *) |
6 |
6 |
7 signature FOLOGIC = |
7 signature FOLOGIC = |
8 sig |
8 sig |
9 val mk_Trueprop: term -> term |
|
10 val dest_Trueprop: term -> term |
|
11 val mk_conj: term * term -> term |
9 val mk_conj: term * term -> term |
12 val mk_disj: term * term -> term |
10 val mk_disj: term * term -> term |
13 val mk_imp: term * term -> term |
11 val mk_imp: term * term -> term |
14 val dest_imp: term -> term * term |
12 val dest_imp: term -> term * term |
15 val dest_conj: term -> term list |
13 val dest_conj: term -> term list |
21 val dest_eq: term -> term * term |
19 val dest_eq: term -> term * term |
22 end; |
20 end; |
23 |
21 |
24 structure FOLogic: FOLOGIC = |
22 structure FOLogic: FOLOGIC = |
25 struct |
23 struct |
26 |
|
27 fun mk_Trueprop P = \<^Const>\<open>Trueprop for P\<close>; |
|
28 |
|
29 val dest_Trueprop = \<^Const_fn>\<open>Trueprop for P => P\<close>; |
|
30 |
24 |
31 fun mk_conj (t1, t2) = \<^Const>\<open>conj for t1 t2\<close> |
25 fun mk_conj (t1, t2) = \<^Const>\<open>conj for t1 t2\<close> |
32 and mk_disj (t1, t2) = \<^Const>\<open>disj for t1 t2\<close> |
26 and mk_disj (t1, t2) = \<^Const>\<open>disj for t1 t2\<close> |
33 and mk_imp (t1, t2) = \<^Const>\<open>imp for t1 t2\<close> |
27 and mk_imp (t1, t2) = \<^Const>\<open>imp for t1 t2\<close> |
34 and mk_iff (t1, t2) = \<^Const>\<open>iff for t1 t2\<close>; |
28 and mk_iff (t1, t2) = \<^Const>\<open>iff for t1 t2\<close>; |