src/HOLCF/IMP/HoareEx.ML
changeset 3664 2dced1ac2d8e
child 4098 71e05eb27fb6
equal deleted inserted replaced
3663:e2d1e1151314 3664:2dced1ac2d8e
       
     1 (*  Title:      HOLCF/IMP/HoareEx.ML
       
     2     ID:         $Id$
       
     3     Author:     Tobias Nipkow
       
     4     Copyright   1997 TUM
       
     5 
       
     6 Correctness of while-loop.
       
     7 *)
       
     8 
       
     9 val prems = goalw thy [hoare_valid_def]
       
    10 "|= {A} c {A} ==> |= {A} WHILE b DO c {%s. A s & ~b s}";
       
    11 by(cut_facts_tac prems 1);
       
    12 by (Simp_tac 1);
       
    13 by (rtac fix_ind 1);
       
    14   (* simplifier with enhanced adm-tactic: *)
       
    15   by (Simp_tac 1);
       
    16  by (Simp_tac 1);
       
    17 by (simp_tac (!simpset setloop (split_tac[expand_if])) 1);
       
    18 by(Blast_tac 1);
       
    19 qed "WHILE_rule_sound";