diff -r a97e9caebd60 -r c4e9a48bc50e src/HOL/Record.thy --- a/src/HOL/Record.thy Sat Aug 15 15:29:54 2009 +0200 +++ b/src/HOL/Record.thy Thu Aug 27 00:40:53 2009 +1000 @@ -1,26 +1,36 @@ (* Title: HOL/Record.thy + ID: $Id: Record.thy,v 1.33 2007/12/19 15:32:12 schirmer Exp $ Author: Wolfgang Naraschewski, Norbert Schirmer and Markus Wenzel, TU Muenchen *) header {* Extensible records with structural subtyping *} theory Record -imports Product_Type -uses ("Tools/record.ML") +imports Product_Type IsTuple +uses ("Tools/record_package.ML") begin lemma prop_subst: "s = t \ PROP P t \ PROP P s" by simp -lemma rec_UNIV_I: "\x. x\UNIV \ True" - by simp - -lemma rec_True_simp: "(True \ PROP P) \ PROP P" - by simp - lemma K_record_comp: "(\x. c) \ f = (\x. c)" by (simp add: comp_def) +lemma meta_iffD2: + "\ PROP P \ PROP Q; PROP Q \ \ PROP P" + by simp + +lemma o_eq_dest_lhs: + "a o b = c \ a (b v) = c v" + by clarsimp + +lemma id_o_refl: + "id o f = f o id" + by simp + +lemma o_eq_id_dest: + "a o b = id o c \ a (b v) = c v" + by clarsimp subsection {* Concrete record syntax *} @@ -55,7 +65,7 @@ "_record_scheme" :: "[fields, 'a] => 'a" ("(3\_,/ (2\ =/ _)\)") "_record_update" :: "['a, updates] => 'b" ("_/(3\_\)" [900,0] 900) -use "Tools/record.ML" -setup Record.setup +use "Tools/record_package.ML" +setup RecordPackage.setup end