A cautionary note about self-reference
  If a semantically open language has no constraints on self-reference, one can prove an absurdity. The argument utilizes co-referring names 'a0' and 'a1', and the definition of a functional expression 'The reflection of x = y'. The definition enables a type of self-reference without deploying any semantic terminology--yet given that a0= a1, the definition implies the that 'a0' = 'a1', which is absurd. In truth, however, 'the reflection of x = y' expresses an ill-defined function. And since there is a general ban on ill-defined functions, there is no real cause for concern. Still, the moral would be that the prohibition on ill-defined functions entails that self-reference cannot be unconstrained, even in a semantically open language. 
T. Parent
math.LO