src/HOL/UNITY/Client.ML
changeset 6018 8131f37f4ba3
parent 6012 1894bfc4aee9
child 6295 351b3c2b0d83
equal deleted inserted replaced
6017:dbb33359a7ab 6018:8131f37f4ba3
   129 \                          {s. k < size (rel s)})";
   129 \                          {s. k < size (rel s)})";
   130 by (rtac guaranteesI 1);
   130 by (rtac guaranteesI 1);
   131 by (Clarify_tac 1);
   131 by (Clarify_tac 1);
   132 by (rtac Stable_transient_reachable_LeadsTo 1);
   132 by (rtac Stable_transient_reachable_LeadsTo 1);
   133 by (res_inst_tac [("k", "k")] transient_lemma 2);
   133 by (res_inst_tac [("k", "k")] transient_lemma 2);
   134 be Disjoint_States_eq 2;
   134 by (etac Disjoint_States_eq 2);
   135 by (force_tac (claset() addDs [impOfSubs Increasing_size,
   135 by (force_tac (claset() addDs [impOfSubs Increasing_size,
   136 			       impOfSubs Increasing_Stable_less],
   136 			       impOfSubs Increasing_Stable_less],
   137 	       simpset()) 1);
   137 	       simpset()) 1);
   138 by (rtac (make_elim (lemma1 RS guaranteesD)) 1);
   138 by (rtac (make_elim (lemma1 RS guaranteesD)) 1);
   139  by (Blast_tac 1);
   139  by (Blast_tac 1);
   140 be Disjoint_States_eq 1;
   140 by (etac Disjoint_States_eq 1);
   141 by (auto_tac (claset(),
   141 by (auto_tac (claset(),
   142 	      simpset() addsimps [Invariant_eq_always, giv_meets_ask_def]));
   142 	      simpset() addsimps [Invariant_eq_always, giv_meets_ask_def]));
   143 by (ALLGOALS Force_tac);
   143 by (ALLGOALS Force_tac);
   144 qed "client_correct";
   144 qed "client_correct";