src/Sequents/ILL/washing.ML
changeset 6252 935f183bf406
child 16415 d4e2f121e219
equal deleted inserted replaced
6251:4d89d4f0ab17 6252:935f183bf406
       
     1 
       
     2 open washing;
       
     3 
       
     4 (* "activate" definitions for use in proof *)
       
     5 
       
     6 val changeI = [context1] RL ([change] RLN (2,[cut]));
       
     7 val load1I =  [context1] RL ([load1]  RLN (2,[cut]));
       
     8 val washI =   [context1] RL ([wash]   RLN (2,[cut]));
       
     9 val dryI =    [context1] RL ([dry]    RLN (2,[cut]));
       
    10 
       
    11 
       
    12 
       
    13 (* a load of dirty clothes and two dollars gives you clean clothes *)
       
    14 
       
    15 Goal "dollar , dollar , dirty |- clean";
       
    16 
       
    17 by (best_tac (lazy_cs add_safes (changeI @ load1I @ washI @ dryI)) 1);
       
    18 
       
    19 
       
    20 (* order of premises doesn't matter *)
       
    21 
       
    22 prove_goal thy "dollar , dirty , dollar |- clean"
       
    23 (fn _ => [best_tac (lazy_cs add_safes (changeI @ load1I @ washI @ dryI)) 1]);
       
    24 
       
    25 
       
    26 (* alternative formulation *)
       
    27 
       
    28 prove_goal thy "dollar , dollar |- dirty -o clean"
       
    29 (fn _ => [best_tac (lazy_cs add_safes (changeI @ load1I @ washI @ dryI)) 1]);
       
    30 
       
    31 
       
    32 
       
    33