src/Pure/Isar/proof.ML
changeset 8450 dc44d6533f0f
parent 8383 2dd4823c744f
child 8462 7f4e4e875c13
equal deleted inserted replaced
8449:f8ff23736465 8450:dc44d6533f0f
    65     -> state -> state
    65     -> state -> state
    66   val presume: (string * context attribute list * (string * (string list * string list)) list) list
    66   val presume: (string * context attribute list * (string * (string list * string list)) list) list
    67     -> state -> state
    67     -> state -> state
    68   val presume_i: (string * context attribute list * (term * (term list * term list)) list) list
    68   val presume_i: (string * context attribute list * (term * (term list * term list)) list) list
    69     -> state -> state
    69     -> state -> state
    70   val invoke_case: string -> state -> state
    70   val invoke_case: string * context attribute list -> state -> state
    71   val theorem: bstring -> theory attribute list -> string * (string list * string list)
    71   val theorem: bstring -> theory attribute list -> string * (string list * string list)
    72     -> theory -> state
    72     -> theory -> state
    73   val theorem_i: bstring -> theory attribute list -> term * (term list * term list)
    73   val theorem_i: bstring -> theory attribute list -> term * (term list * term list)
    74     -> theory -> state
    74     -> theory -> state
    75   val lemma: bstring -> theory attribute list -> string * (string list * string list)
    75   val lemma: bstring -> theory attribute list -> string * (string list * string list)
   559 end;
   559 end;
   560 
   560 
   561 
   561 
   562 (* invoke_case *)
   562 (* invoke_case *)
   563 
   563 
   564 fun invoke_case name state =
   564 fun invoke_case (name, atts) state =
   565   let val (vars, props) = get_case state name in
   565   let val (vars, props) = get_case state name in
   566     state
   566     state
   567     |> fix_i (map (fn (x, T) => ([x], Some T)) vars)
   567     |> fix_i (map (fn (x, T) => ([x], Some T)) vars)
   568     |> assume_i [(name, [], map (fn t => (t, ([], []))) props)]
   568     |> assume_i [(name, atts, map (fn t => (t, ([], []))) props)]
   569   end;
   569   end;
   570 
   570 
   571 
   571 
   572 
   572 
   573 (** goals **)
   573 (** goals **)