anchor.diff:                   | with
                    ;
   ----
  +
  +Syntax for property existence constraints:
  +[source, ebnf]
  +----
  +CreateNodePropertyExistenceConstraint = "CREATE", NodePropertyExistenceConstraint ;
  +
  +CreateRelPropertyExistenceConstraint = "CREATE", RelPropertyExistenceConstraint ;
  +
  +DropNodePropertyExistenceConstraint = "DROP", NodePropertyExistenceConstraint ;
  +
  +DropRelPropertyExistenceConstraint = "DROP", RelPropertyExistenceConstraint ;
  +
  +NodePropertyExistenceConstraint = "CONSTRAINT ON", "(", Variable, NodeLabel, ")",
  +                                  "ASSERT", PropertyExpression, "IS NOT NULL" ;
  +
  +RelPropertyExistenceConstraint = "CONSTRAINT ON", "(", RelationshipPatternSyntax, ")",
  +                                 "ASSERT", PropertyExpression, "IS NOT NULL" ;
  +----
  +
  +The production rules for `Variable`, `NodeLabel`, `PropertyExpression`, and `RelationshipPatternSyntax` are unchanged.
  +The definitions can be found in the <<../../grammar/commands.xml,grammar for commands>> and the <<../../grammar/basic-grammar.xml,basic grammar>>
   
   === Semantics
   
  
positive.code: == Caveats to this proposal
  
  * The idiomatic syntax for property existence checks is removed.
  
negative.code: To clear out this confusion, this CIP proposes to remove the syntax of `EXISTS` for property existence checks and use only `IS NOT NULL` for this purpose.
  `IS NOT NULL` does not look like a function call and therefore it is unlikely that someone would expect it to behave like one.
  
  In addition, this CIP proposes to change the syntax for creating and dropping node and relationship property existence constraints.
  To be aligned with using `IS NOT NULL` for existence checks, creating a node property existence constraint, for example, will look like this:
  [source, cypher]
  ----
  CREATE CONSTRAINT ON (p:Person)
         ASSERT p.name IS NOT NULL
  ----
  
  == Proposal
  
  Firstly, this CIP proposes to redefine the syntax for `EXISTS`, previously defined in <<CIP2015-05-13-EXISTS.adoc,CIP2015-05-13>>.
  It removes  the syntax of `EXISTS` for property existence checks.
  
  Secondly, this CIP proposes to redefine the syntax for node and relationship property existence constraints.
  The current syntax is not specified in any CIP, but mentioned in the <<../../docs/,standardisation scope>>.
  It is also encoded in the <<../../grammar/commands.xml,grammar for commands>>.
  
  === Syntax
  
  Syntax for `EXISTS`:
  [source, ebnf]
  ----
  expression = <current definition of expression>
  