src/Pure/goal.ML
changeset 67721 5348bea4accd
parent 65458 cf504b7a7aa7
child 68025 7fb7a6366a40
equal deleted inserted replaced
67718:17874d43d3b3 67721:5348bea4accd
    58 
    58 
    59 (** goals **)
    59 (** goals **)
    60 
    60 
    61 (*
    61 (*
    62   -------- (init)
    62   -------- (init)
    63   C ==> #C
    63   C \<Longrightarrow> #C
    64 *)
    64 *)
    65 fun init C = Thm.instantiate ([], [((("A", 0), propT), C)]) Drule.protectI;
    65 fun init C = Thm.instantiate ([], [((("A", 0), propT), C)]) Drule.protectI;
    66 
    66 
    67 (*
    67 (*
    68   A1 ==> ... ==> An ==> C
    68   A1 \<Longrightarrow> ... \<Longrightarrow> An \<Longrightarrow> C
    69   ------------------------ (protect n)
    69   ------------------------ (protect n)
    70   A1 ==> ... ==> An ==> #C
    70   A1 \<Longrightarrow> ... \<Longrightarrow> An \<Longrightarrow> #C
    71 *)
    71 *)
    72 fun protect n th = Drule.comp_no_flatten (th, n) 1 Drule.protectI;
    72 fun protect n th = Drule.comp_no_flatten (th, n) 1 Drule.protectI;
    73 
    73 
    74 (*
    74 (*
    75   A ==> ... ==> #C
    75   A \<Longrightarrow> ... \<Longrightarrow> #C
    76   ---------------- (conclude)
    76   ---------------- (conclude)
    77   A ==> ... ==> C
    77   A \<Longrightarrow> ... \<Longrightarrow> C
    78 *)
    78 *)
    79 fun conclude th = Drule.comp_no_flatten (th, Thm.nprems_of th) 1 Drule.protectD;
    79 fun conclude th = Drule.comp_no_flatten (th, Thm.nprems_of th) 1 Drule.protectD;
    80 
    80 
    81 (*
    81 (*
    82   #C
    82   #C