update keywords file
authorhuffman
Wed Apr 04 12:25:58 2012 +0200 (2012-04-04)
changeset 4735495846613e414
parent 47353 fc7de207e488
child 47355 3d9d98e0f1a4
update keywords file
etc/isar-keywords.el
src/HOL/Lifting.thy
     1.1 --- a/etc/isar-keywords.el	Wed Apr 04 14:27:20 2012 +0200
     1.2 +++ b/etc/isar-keywords.el	Wed Apr 04 12:25:58 2012 +0200
     1.3 @@ -129,6 +129,7 @@
     1.4      "lemma"
     1.5      "lemmas"
     1.6      "let"
     1.7 +    "lift_definition"
     1.8      "linear_undo"
     1.9      "local_setup"
    1.10      "locale"
    1.11 @@ -570,6 +571,7 @@
    1.12      "instance"
    1.13      "interpretation"
    1.14      "lemma"
    1.15 +    "lift_definition"
    1.16      "nominal_inductive"
    1.17      "nominal_inductive2"
    1.18      "nominal_primrec"
     2.1 --- a/src/HOL/Lifting.thy	Wed Apr 04 14:27:20 2012 +0200
     2.2 +++ b/src/HOL/Lifting.thy	Wed Apr 04 12:25:58 2012 +0200
     2.3 @@ -252,6 +252,16 @@
     2.4    shows "equivp (op=::'a\<Rightarrow>'a\<Rightarrow>bool)"
     2.5  by (rule identity_equivp)
     2.6  
     2.7 +lemma typedef_to_Quotient:
     2.8 +  assumes "type_definition Rep Abs {x. P x}"
     2.9 +  and T_def: "T \<equiv> (\<lambda>x y. x = Rep y)"
    2.10 +  shows "Quotient (invariant P) Abs Rep T"
    2.11 +proof -
    2.12 +  interpret type_definition Rep Abs "{x. P x}" by fact
    2.13 +  from Rep Abs_inject Rep_inverse Abs_inverse T_def show ?thesis
    2.14 +    by (auto intro!: QuotientI simp: invariant_def fun_eq_iff)
    2.15 +qed
    2.16 +
    2.17  lemma invariant_type_to_Quotient:
    2.18    assumes "type_definition Rep Abs {x. P x}"
    2.19    and T_def: "T \<equiv> (\<lambda>x y. (invariant P) x x \<and> Abs x = y)"