src/FOL/fologic.ML
changeset 74342 5d411d85da8c
parent 74321 714e87ce6e9d
equal deleted inserted replaced
74341:edf8b141a8c4 74342:5d411d85da8c
     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>;