src/HOL/Hoare/Hoare.thy
changeset 11606 43abedd4467e
parent 9397 358e67410253
child 13682 91674c8a008b
equal deleted inserted replaced
11605:8e45a16295ed 11606:43abedd4467e
    72   | mk_abstuple [v]    body = absfree ((fst o dest_Free) v, dummyT, body)
    72   | mk_abstuple [v]    body = absfree ((fst o dest_Free) v, dummyT, body)
    73   | mk_abstuple (v::w) body = Syntax.const "split" $
    73   | mk_abstuple (v::w) body = Syntax.const "split" $
    74                               absfree ((fst o dest_Free) v, dummyT, mk_abstuple w body);
    74                               absfree ((fst o dest_Free) v, dummyT, mk_abstuple w body);
    75 
    75 
    76   
    76   
    77 fun mk_fbody v e []      = Syntax.const "()"
    77 fun mk_fbody v e []      = Syntax.const "Unity"
    78   | mk_fbody v e [x]     = if v=x then e else x
    78   | mk_fbody v e [x]     = if v=x then e else x
    79   | mk_fbody v e (x::xs) = Syntax.const "Pair" $ (if v=x then e else x) $
    79   | mk_fbody v e (x::xs) = Syntax.const "Pair" $ (if v=x then e else x) $
    80                            mk_fbody v e xs;
    80                            mk_fbody v e xs;
    81 
    81 
    82 fun mk_fexp v e xs = mk_abstuple xs (mk_fbody v e xs);
    82 fun mk_fexp v e xs = mk_abstuple xs (mk_fbody v e xs);