Abstraction and meta-level reasoning for program transformation. - Ian McLaughlan Green (1992)