equal
deleted
inserted
replaced
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}) |