# HG changeset patch # User Cezary Kaliszyk # Date 1255536796 -7200 # Node ID 8c3a35da45608ea241ff6943d6ffefcd950256ff # Parent ecfc2e1fd15e3fa5dac1c7ff3445e9f687dd0774 Proving the proper RepAbs version diff -r ecfc2e1fd15e -r 8c3a35da4560 QuotMain.thy --- a/QuotMain.thy Wed Oct 14 16:23:49 2009 +0200 +++ b/QuotMain.thy Wed Oct 14 18:13:16 2009 +0200 @@ -325,7 +325,11 @@ *} definition - "(x : p) \ (Babs p m x = m x)" + Babs :: "('a \ bool) \ ('a \ 'b) \ 'a \ 'b" +where + "(x \ p) \ (Babs p m x = m x)" + +(* Babs p m = \x. if x \ p then m x else undefined *) (*definition BAll :: "('a \ prop) \ ('a \ prop) \ prop" where "BAll (R :: 'a \ prop) (P :: 'a \ prop) \ (\x. (PROP R x \ PROP P x))"*) @@ -1141,19 +1145,7 @@ apply (tactic {* foo_tac' @{context} 1 *}) done -thm list.induct -lemma list_induct2: - shows "(P []) \ (\ a list. ((P list) \ (P (a # list)))) \ \l :: 'a list. (P l)" - apply (rule allI) - apply (rule list.induct) - apply (assumption) - apply (auto) - done - -ML {* ObjectLogic.atomize (cprop_of @{thm list_induct2}) *} -ML {* (atomize_thm @{thm list_induct2}) *} - -ML {* val li = Thm.freezeT (atomize_thm @{thm list_induct2}) *} +ML {* val li = Thm.freezeT (atomize_thm @{thm list.induct}) *} (* TODO: the following 2 lemmas should go to quotscript.thy after all are done *) lemma RIGHT_RES_FORALL_REGULAR: @@ -1339,6 +1331,9 @@ = Ball (Respects ((op \) ===> (op =))) (\P. ((P []) \ (Ball (Respects (op \)) (\t. P t \ (\h. (P (h # t)))))) \ (Ball (Respects (op \)) (\l. P l)))" +thm APPLY_RSP +thm APPLY_RSP[of "op \ ===> (op = ===> op =)" _ _ "op =" "id" "id"] +apply (rule APPLY_RSP[of "op \ ===> (op = ===> op =)" _ _ "op ="]) term "(\P. (((P []) \ (\t. (P t \ (\h. P (h # t))))) \ (\l. (P l))))" thm LAMBDA_PRS1[symmetric] (*apply (simp only:LAMBDA_PRS1[symmetric] FUN_QUOTIENT IDENTITY_QUOTIENT QUOT_TYPE_I_fset.QUOTIENT)*) diff -r ecfc2e1fd15e -r 8c3a35da4560 QuotScript.thy --- a/QuotScript.thy Wed Oct 14 16:23:49 2009 +0200 +++ b/QuotScript.thy Wed Oct 14 18:13:16 2009 +0200 @@ -416,3 +416,4 @@ using a by (metis EQUIV_def IN_RESPECTS a) end +