src/Pure/object_logic.ML
changeset 6768 26d64339c25a
parent 5840 e2d2b896c717
equal deleted inserted replaced
6767:99797f2652d1 6768:26d64339c25a
     9 *)
     9 *)
    10 
    10 
    11 signature OBJECT_LOGIC =
    11 signature OBJECT_LOGIC =
    12 sig
    12 sig
    13   val dest_statement: string * term -> (string * term) list
    13   val dest_statement: string * term -> (string * term) list
       
    14   val dest_main_statement: term -> term
    14   val setup: (theory -> theory) list
    15   val setup: (theory -> theory) list
    15 end;
    16 end;
    16 
    17 
    17 structure ObjectLogic: OBJECT_LOGIC =
    18 structure ObjectLogic: OBJECT_LOGIC =
    18 struct
    19 struct
    22   let val concl = Logic.strip_imp_concl prop in
    23   let val concl = Logic.strip_imp_concl prop in
    23     [(name ^ "_prop", prop), (name ^ "_concl", concl)] @
    24     [(name ^ "_prop", prop), (name ^ "_concl", concl)] @
    24       (case concl of Const ("Trueprop", _) $ t => [(name, t)] | _ => [])
    25       (case concl of Const ("Trueprop", _) $ t => [(name, t)] | _ => [])
    25   end;
    26   end;
    26 
    27 
       
    28 fun dest_main_statement t =
       
    29   (case Logic.strip_imp_concl t of
       
    30     _ $ t => t
       
    31   | _ => raise TERM ("dest_main", [t]));
       
    32 
    27 
    33 
    28 (* FIXME *)
    34 (* FIXME *)
    29 val setup = [];
    35 val setup = [];
    30 
    36 
    31 end;
    37 end;