anchor.diff:          (affectsClause)*
           (requiresClause)?
           (ensuresClause)?
  -        (recursive=RECURSIVE)? PROCEDURE
  -        (decreasingClause)?
  +        PROCEDURE
  +        (facilityDecl)*
  +        (variableDecl)*
  +        (auxVariableDecl)*
  +        (stmt)*
  +        END closename=IDENTIFIER SEMICOLON
  +    ;
  +
  +recursiveOperationProcedureDecl
  +    :   OPERATION
  +        name=IDENTIFIER operationParameterList SEMICOLON
  +        (affectsClause)*
  +        (requiresClause)?
  +        (ensuresClause)?
  +        RECURSIVE PROCEDURE
  +        decreasingClause
           (facilityDecl)*
           (variableDecl)*
           (auxVariableDecl)*
  
positive.code:         SHORT_FOR fullName=IDENTIFIER FOR concept=IDENTIFIER SEMICOLON
          (usesList)?
          (requiresClause)?
          END closename=IDENTIFIER SEMICOLON EOF
      ;
  
  
negative.code: 
  implItem
      :   stateVariableDecl
      |   facilityDecl
      |   recursiveOperationProcedureDecl
      |   operationProcedureDecl
      |   procedureDecl
      |   recursiveProcedureDecl
      |   mathDefinitionDecl
      |   typeRepresentationDecl
      |   conventionClause
  