Nominal/Fv.thy
changeset 1513 44840614ea0c
parent 1510 be911e869fde
child 1514 b52b72676e20
equal deleted inserted replaced
1512:a3bc56202003 1513:44840614ea0c
    76    - for nominal datatype ty' return: fv_ty' x
    76    - for nominal datatype ty' return: fv_ty' x
    77 *)
    77 *)
    78 
    78 
    79 (*
    79 (*
    80 An overview of the generation of alpha-equivalence:
    80 An overview of the generation of alpha-equivalence:
       
    81 
       
    82 1) alpha_bn relations are generated for binding functions.
       
    83 
       
    84    An alpha_bn for a constructor is true if a conjunction of
       
    85    propositions for each argument holds.
       
    86 
       
    87    For an argument a proposition is build as follows from
       
    88    th:
       
    89 
       
    90    - for a recursive argument in the bn function, we return: alpha_bn argl argr
       
    91    - for a recursive argument for type ty not in bn, we return: alpha_ty argl argr
       
    92    - for other arguments in the bn function we return: True
       
    93    - for other arguments not in the bn function we return: argl = argr
       
    94 
    81 *)
    95 *)
    82 
    96 
    83 ML {*
    97 ML {*
    84 fun is_atom thy typ =
    98 fun is_atom thy typ =
    85   Sign.of_sort thy (typ, @{sort at})
    99   Sign.of_sort thy (typ, @{sort at})