tidied
authorpaulson
Fri, 05 Nov 1999 16:41:56 +0100
changeset 8002fb83cbd469bb
parent 8001 14c8843cd35b
child 8003 5244d7ed31b9
tidied
src/HOL/UNITY/Project.ML
     1.1 --- a/src/HOL/UNITY/Project.ML	Fri Nov 05 12:47:29 1999 +0100
     1.2 +++ b/src/HOL/UNITY/Project.ML	Fri Nov 05 16:41:56 1999 +0100
     1.3 @@ -570,32 +570,6 @@
     1.4  qed "transient_extend_set_imp_project_transient";
     1.5  
     1.6  
     1.7 -(*UNUSED.  WHY??
     1.8 -  Converse of the above...it requires a strong assumption about actions
     1.9 -  being enabled for all possible values of the new variables.*)
    1.10 -Goalw [transient_def]
    1.11 -     "[| project h C F : transient A;  \
    1.12 -\        ALL act: Acts F. project_act h (Restrict C act) ^^ A <= - A --> \
    1.13 -\                         Domain act <= C \
    1.14 -\             & extend_set h (project_set h (Domain act)) <= Domain act |]  \
    1.15 -\     ==> F : transient (extend_set h A)";
    1.16 -by (auto_tac (claset() delrules [ballE],
    1.17 -	      simpset() addsimps [Domain_project_act]));
    1.18 -by (ball_tac 1);
    1.19 -by (rtac bexI 1);
    1.20 -by (assume_tac 2);
    1.21 -by Auto_tac;
    1.22 -by (eres_inst_tac [("P", "A <= ?B")] rev_mp 1);
    1.23 -by (force_tac (claset(), simpset() addsimps [Int_absorb1]) 1);
    1.24 -(*The Domain requirement's proved; must prove the Image requirement*)
    1.25 -by (res_inst_tac [("y1", "x")] (surj_h RS surjD RS exE) 1);
    1.26 -by (res_inst_tac [("y1", "xa")] (surj_h RS surjD RS exE) 1);
    1.27 -by Auto_tac;
    1.28 -by (thin_tac "A <= ?B" 1);
    1.29 -by (force_tac (claset() addSIs [ImageI, project_act_I], simpset()) 1);
    1.30 -qed "project_transient_imp_transient_extend_set";
    1.31 -
    1.32 -
    1.33  (** ensures **)
    1.34  
    1.35  (*For simplicity, the complicated condition on C is eliminated
    1.36 @@ -610,21 +584,16 @@
    1.37  by (Blast_tac 1);
    1.38  qed "ensures_extend_set_imp_project_ensures";
    1.39  
    1.40 -(*A strong condition: F can do anything that project G can.*)
    1.41 -Goal "[| ALL D. project h C G : transient D --> F : transient D;  \
    1.42 +Goal "[| project h C G : transient (A-B) --> F : transient (A-B);  \
    1.43  \        extend h F Join G : stable C;  \
    1.44  \        F Join project h C G : A ensures B |] \
    1.45  \     ==> extend h F Join G : (C Int extend_set h A) ensures (extend_set h B)";
    1.46 -by (case_tac "A <= B" 1);
    1.47 -by (blast_tac (claset() addIs [subset_imp_ensures] addDs [extend_set_mono]) 1);
    1.48 -by (full_simp_tac (simpset() addsimps [ensures_def, Join_constrains,
    1.49 -				       Join_stable, Join_transient]) 1);
    1.50 -by (REPEAT_FIRST (rtac conjI));
    1.51 -by (blast_tac (claset() addDs [extend_transient RS iffD2] 
    1.52 -                        addIs [transient_strengthen]) 3);
    1.53 -by (REPEAT (force_tac (claset() addIs [project_unless RS unlessD, unlessI, 
    1.54 -				       project_extend_constrains_I], 
    1.55 -		       simpset()) 1));
    1.56 +by (auto_tac (claset() addDs [extend_transient RS iffD2] 
    1.57 +                       addIs [transient_strengthen, 
    1.58 +			      project_unless RS unlessD, unlessI, 
    1.59 +			      project_extend_constrains_I], 
    1.60 +	      simpset() addsimps [ensures_def, Join_constrains,
    1.61 +				  Join_stable, Join_transient]));
    1.62  qed_spec_mp "Join_project_ensures";
    1.63  
    1.64  (** Lemma useful for both STRONG and WEAK progress*)