src/HOL/TPTP/TPTP_Proof_Reconstruction.thy
changeset 59763 56d2c357e6b5
parent 59760 a996f037c09d
child 59780 23b67731f4f0
equal deleted inserted replaced
59762:df377a6fdd90 59763:56d2c357e6b5
   183   in
   183   in
   184     if null parameters then no_tac st
   184     if null parameters then no_tac st
   185     else
   185     else
   186       let
   186       let
   187         fun instantiate param =
   187         fun instantiate param =
   188            (map (eres_inst_tac ctxt [((("x", 0), Position.none), param)]) thms
   188           (map (Rule_Insts.eres_inst_tac ctxt [((("x", 0), Position.none), param)]) thms
   189                    |> FIRST')
   189                    |> FIRST')
   190         val attempts = map instantiate parameters
   190         val attempts = map instantiate parameters
   191       in
   191       in
   192         (fold (curry (op APPEND')) attempts (K no_tac)) i st
   192         (fold (curry (op APPEND')) attempts (K no_tac)) i st
   193       end
   193       end
   219   in
   219   in
   220     if null parameters then no_tac st
   220     if null parameters then no_tac st
   221     else
   221     else
   222       let
   222       let
   223         fun instantiates param =
   223         fun instantiates param =
   224            eres_inst_tac ctxt [((("x", 0), Position.none), param)] thm
   224           Rule_Insts.eres_inst_tac ctxt [((("x", 0), Position.none), param)] thm
   225 
   225 
   226         val quantified_var = head_quantified_variable ctxt i st
   226         val quantified_var = head_quantified_variable ctxt i st
   227       in
   227       in
   228         if is_none quantified_var then no_tac st
   228         if is_none quantified_var then no_tac st
   229         else
   229         else
   671   in
   671   in
   672     if null gls orelse null candidate_consts then no_tac st
   672     if null gls orelse null candidate_consts then no_tac st
   673     else
   673     else
   674       let
   674       let
   675         fun instantiate const_name =
   675         fun instantiate const_name =
   676           dres_inst_tac ctxt [((("sk", 0), Position.none), const_name ^ parameters)]
   676           Rule_Insts.dres_inst_tac ctxt [((("sk", 0), Position.none), const_name ^ parameters)]
   677             @{thm leo2_skolemise}
   677             @{thm leo2_skolemise}
   678         val attempts = map instantiate candidate_consts
   678         val attempts = map instantiate candidate_consts
   679       in
   679       in
   680         (fold (curry (op APPEND')) attempts (K no_tac)) i st
   680         (fold (curry (op APPEND')) attempts (K no_tac)) i st
   681       end
   681       end
  1553 
  1553 
  1554     val bool_to_bool =
  1554     val bool_to_bool =
  1555       ["% _ . True", "% _ . False", "% x . x", "Not"]
  1555       ["% _ . True", "% _ . False", "% x . x", "Not"]
  1556 
  1556 
  1557     val tecs =
  1557     val tecs =
  1558       map (fn t_s =>
  1558       map (fn t_s =>  (* FIXME proper context!? *)
  1559        eres_inst_tac @{context} [((("x", 0), Position.none), t_s)] @{thm allE}
  1559        Rule_Insts.eres_inst_tac @{context} [((("x", 0), Position.none), t_s)] @{thm allE}
  1560        THEN' atac)
  1560        THEN' atac)
  1561   in
  1561   in
  1562     (TRY o etac @{thm forall_pos_lift})
  1562     (TRY o etac @{thm forall_pos_lift})
  1563     THEN' (atac
  1563     THEN' (atac
  1564            ORELSE' FIRST'
  1564            ORELSE' FIRST'
  1733             if null hyp_prefix orelse
  1733             if null hyp_prefix orelse
  1734               member (op =) conc_prefix (hd hyp_prefix) orelse
  1734               member (op =) conc_prefix (hd hyp_prefix) orelse
  1735               member (op =)  (Term.add_frees hyp_body []) (hd hyp_prefix) then
  1735               member (op =)  (Term.add_frees hyp_body []) (hd hyp_prefix) then
  1736               no_tac st
  1736               no_tac st
  1737             else
  1737             else
  1738               eres_inst_tac ctxt [((("x", 0), Position.none), "(@X. False)")]
  1738               Rule_Insts.eres_inst_tac ctxt [((("x", 0), Position.none), "(@X. False)")]
  1739                 @{thm allE} i st
  1739                 @{thm allE} i st
  1740           end
  1740           end
  1741      end
  1741      end
  1742   end
  1742   end
  1743 *}
  1743 *}