src/Pure/Isar/isar_thy.ML
changeset 12242 282a92bc5655
parent 12141 d8445053eee0
child 12244 179f142ffb03
equal deleted inserted replaced
12241:c4a2a0686238 12242:282a92bc5655
    97   val theorem_i: string -> (string * Proof.context attribute list) option
    97   val theorem_i: string -> (string * Proof.context attribute list) option
    98     * Proof.context attribute Locale.element_i list
    98     * Proof.context attribute Locale.element_i list
    99     -> ((bstring * Theory.theory Thm.attribute list) *
    99     -> ((bstring * Theory.theory Thm.attribute list) *
   100       (Term.term * (Term.term list * Term.term list))) * Comment.text
   100       (Term.term * (Term.term list * Term.term list))) * Comment.text
   101     -> bool -> theory -> ProofHistory.T
   101     -> bool -> theory -> ProofHistory.T
   102   val multi_theorem: string -> (xstring * Args.src list) option * Args.src Locale.element list ->
   102   val multi_theorem: string -> (bstring * Args.src list)
   103     (((bstring * Args.src list) * (string * (string list * string list)) list)
   103     -> (xstring * Args.src list) option * Args.src Locale.element list
       
   104     -> (((bstring * Args.src list) * (string * (string list * string list)) list)
   104     * Comment.text) list -> bool -> theory -> ProofHistory.T
   105     * Comment.text) list -> bool -> theory -> ProofHistory.T
   105   val multi_theorem_i: string -> (string * Proof.context attribute list) option
   106   val multi_theorem_i: string -> (bstring * theory attribute list)
   106     * Proof.context attribute Locale.element_i list ->
   107     -> (string * Proof.context attribute list) option
       
   108       * Proof.context attribute Locale.element_i list ->
   107     (((bstring * Theory.theory Thm.attribute list) *
   109     (((bstring * Theory.theory Thm.attribute list) *
   108       (Term.term * (Term.term list * Term.term list)) list) * Comment.text) list
   110       (Term.term * (Term.term list * Term.term list)) list) * Comment.text) list
   109     -> bool -> theory -> ProofHistory.T
   111     -> bool -> theory -> ProofHistory.T
   110   val assume: (((string * Args.src list) * (string * (string list * string list)) list)
   112   val assume: (((string * Args.src list) * (string * (string list * string list)) list)
   111     * Comment.text) list -> ProofHistory.T -> ProofHistory.T
   113     * Comment.text) list -> ProofHistory.T -> ProofHistory.T
   443 fun local_statement f g args = local_statement' (K o f) g args ();
   445 fun local_statement f g args = local_statement' (K o f) g args ();
   444 fun local_statement_i f g args = local_statement_i' (K o f) g args ();
   446 fun local_statement_i f g args = local_statement_i' (K o f) g args ();
   445 
   447 
   446 in
   448 in
   447 
   449 
   448 fun multi_theorem k (locale, elems) args int thy =
   450 fun multi_theorem k a (locale, elems) args int thy =
   449   global_statement (Proof.multi_theorem k
   451   global_statement (Proof.multi_theorem k (apsnd (map (Attrib.global_attribute thy)) a)
   450     (apsome (apsnd (map (Attrib.local_attribute thy))) locale)
   452     (apsome (apsnd (map (Attrib.local_attribute thy))) locale)
   451     (map (Locale.attribute (Attrib.local_attribute thy)) elems)) (map Comment.ignore args) int thy;
   453     (map (Locale.attribute (Attrib.local_attribute thy)) elems)) (map Comment.ignore args) int thy;
   452 
   454 
   453 fun multi_theorem_i k (locale, elems) =
   455 fun multi_theorem_i k a (locale, elems) =
   454   global_statement_i (Proof.multi_theorem_i k locale elems) o map Comment.ignore;
   456   global_statement_i (Proof.multi_theorem_i k a locale elems) o map Comment.ignore;
   455 
   457 
   456 fun theorem k loc ((a, t), cmt) = multi_theorem k loc [((a, [t]), cmt)];
   458 fun theorem k loc ((a, t), cmt) = multi_theorem k a loc [((("", []), [t]), cmt)];
   457 fun theorem_i k loc ((a, t), cmt) = multi_theorem_i k loc [((a, [t]), cmt)];
   459 fun theorem_i k loc ((a, t), cmt) = multi_theorem_i k a loc [((("", []), [t]), cmt)];
   458 
   460 
   459 val assume      = local_statement Proof.assume I o map Comment.ignore;
   461 val assume      = local_statement Proof.assume I o map Comment.ignore;
   460 val assume_i    = local_statement_i Proof.assume_i I o map Comment.ignore;
   462 val assume_i    = local_statement_i Proof.assume_i I o map Comment.ignore;
   461 val presume     = local_statement Proof.presume I o map Comment.ignore;
   463 val presume     = local_statement Proof.presume I o map Comment.ignore;
   462 val presume_i   = local_statement_i Proof.presume_i I o map Comment.ignore;
   464 val presume_i   = local_statement_i Proof.presume_i I o map Comment.ignore;