Quot/QuotMain.thy
changeset 873 f14e41e9b08f
parent 870 2a19e0a37131
child 896 4e0b89d886ac
equal deleted inserted replaced
872:2605ea41bbdd 873:f14e41e9b08f
    93 term Quot_Type.abs
    93 term Quot_Type.abs
    94 
    94 
    95 section {* ML setup *}
    95 section {* ML setup *}
    96 
    96 
    97 (* Auxiliary data for the quotient package *)
    97 (* Auxiliary data for the quotient package *)
       
    98 
    98 use "quotient_info.ML"
    99 use "quotient_info.ML"
    99 
   100 
   100 declare [[map "fun" = (fun_map, fun_rel)]]
   101 declare [[map "fun" = (fun_map, fun_rel)]]
   101 
   102 
   102 lemmas [quot_thm] = fun_quotient 
   103 lemmas [quot_thm] = fun_quotient 
   145 by (simp add: Quot_True_def)
   146 by (simp add: Quot_True_def)
   146 
   147 
   147 use "quotient_tacs.ML"
   148 use "quotient_tacs.ML"
   148 
   149 
   149 
   150 
   150 (* Atomize infrastructure *)
       
   151 (* FIXME/TODO: is this really needed? *)
       
   152 (*
       
   153 lemma atomize_eqv[atomize]:
       
   154   shows "(Trueprop A \<equiv> Trueprop B) \<equiv> (A \<equiv> B)"
       
   155 proof
       
   156   assume "A \<equiv> B"
       
   157   then show "Trueprop A \<equiv> Trueprop B" by unfold
       
   158 next
       
   159   assume *: "Trueprop A \<equiv> Trueprop B"
       
   160   have "A = B"
       
   161   proof (cases A)
       
   162     case True
       
   163     have "A" by fact
       
   164     then show "A = B" using * by simp
       
   165   next
       
   166     case False
       
   167     have "\<not>A" by fact
       
   168     then show "A = B" using * by auto
       
   169   qed
       
   170   then show "A \<equiv> B" by (rule eq_reflection)
       
   171 qed
       
   172 *)
       
   173 
       
   174 section {* Methods / Interface *}
   151 section {* Methods / Interface *}
   175 
   152 
   176 ML {*
   153 ML {*
   177 fun mk_method1 tac thm ctxt =
   154 fun mk_method1 tac thm ctxt =
   178   SIMPLE_METHOD (HEADGOAL (tac ctxt thm)) 
   155   SIMPLE_METHOD (HEADGOAL (tac ctxt thm))