merged
authorbulwahn
Wed, 29 Sep 2010 11:36:16 +0200
changeset 400219ab014d47c4d
parent 40020 a44f6b11cdc4
parent 40015 f75381bc46d2
child 40022 533dd8cda12c
merged
     1.1 --- a/src/FOL/hypsubstdata.ML	Wed Sep 29 10:33:15 2010 +0200
     1.2 +++ b/src/FOL/hypsubstdata.ML	Wed Sep 29 11:36:16 2010 +0200
     1.3 @@ -13,8 +13,6 @@
     1.4    val subst = @{thm subst}
     1.5    val sym = @{thm sym}
     1.6    val thin_refl = @{thm thin_refl}
     1.7 -  val prop_subst = @{lemma "PROP P(t) ==> PROP prop (x = t ==> PROP P(x))"
     1.8 -                     by (unfold prop_def) (drule eq_reflection, unfold)}
     1.9  end;
    1.10  
    1.11  structure Hypsubst = HypsubstFun(Hypsubst_Data);
     2.1 --- a/src/HOL/HOL.thy	Wed Sep 29 10:33:15 2010 +0200
     2.2 +++ b/src/HOL/HOL.thy	Wed Sep 29 11:36:16 2010 +0200
     2.3 @@ -834,8 +834,6 @@
     2.4    val subst = @{thm subst}
     2.5    val sym = @{thm sym}
     2.6    val thin_refl = @{thm thin_refl};
     2.7 -  val prop_subst = @{lemma "PROP P t ==> PROP prop (x = t ==> PROP P x)"
     2.8 -                     by (unfold prop_def) (drule eq_reflection, unfold)}
     2.9  end);
    2.10  open Hypsubst;
    2.11  
     3.1 --- a/src/Provers/hypsubst.ML	Wed Sep 29 10:33:15 2010 +0200
     3.2 +++ b/src/Provers/hypsubst.ML	Wed Sep 29 11:36:16 2010 +0200
     3.3 @@ -42,13 +42,10 @@
     3.4    val subst            : thm               (* [| a=b;  P(a) |] ==> P(b) *)
     3.5    val sym              : thm               (* a=b ==> b=a *)
     3.6    val thin_refl        : thm               (* [|x=x; PROP W|] ==> PROP W *)
     3.7 -  val prop_subst       : thm               (* PROP P t ==> PROP prop (x = t ==> PROP P x) *)
     3.8  end;
     3.9  
    3.10  signature HYPSUBST =
    3.11  sig
    3.12 -  val single_hyp_subst_tac   : int -> int -> tactic
    3.13 -  val single_hyp_meta_subst_tac : int -> int -> tactic
    3.14    val bound_hyp_subst_tac    : int -> tactic
    3.15    val hyp_subst_tac          : int -> tactic
    3.16    val blast_hyp_subst_tac    : bool -> int -> tactic
    3.17 @@ -61,27 +58,6 @@
    3.18  
    3.19  exception EQ_VAR;
    3.20  
    3.21 -val meta_subst = @{lemma "PROP P t \<Longrightarrow> PROP prop (x \<equiv> t \<Longrightarrow> PROP P x)"
    3.22 -  by (unfold prop_def)}
    3.23 -
    3.24 -(** Simple version: Just subtitute one hypothesis, specified by index k **)
    3.25 -fun gen_single_hyp_subst_tac subst_rule k = CSUBGOAL (fn (csubg, i) =>
    3.26 - let 
    3.27 -   val pat = fold_rev (Logic.all o Free) (Logic.strip_params (term_of csubg)) (Term.dummy_pattern propT)
    3.28 -             |> cterm_of (theory_of_cterm csubg)
    3.29 -
    3.30 -   val rule =
    3.31 -       Thm.lift_rule pat subst_rule (* lift just over parameters *)
    3.32 -       |> Conv.fconv_rule (MetaSimplifier.rewrite true [@{thm prop_def}])
    3.33 - in
    3.34 -   rotate_tac k i
    3.35 -   THEN Thm.compose_no_flatten false (rule, 1) i
    3.36 -   THEN rotate_tac (~k) i
    3.37 - end)
    3.38 -
    3.39 -val single_hyp_meta_subst_tac = gen_single_hyp_subst_tac meta_subst
    3.40 -val single_hyp_subst_tac = gen_single_hyp_subst_tac Data.prop_subst
    3.41 -
    3.42  fun loose (i,t) = member (op =) (add_loose_bnos (t, i, [])) 0;
    3.43  
    3.44  (*Simplifier turns Bound variables to special Free variables: