Search code examples
equalityrelationisabelle

Term equality in Isabelle


Is there already some term equality relation defined in Isabelle? What is the broadest set of terms on which it is defined?

Just to be clear, I'm looking for a relation a ~ b that returns True iff a is b in the sense that they look exactly the same written down: no properties of a and b should need to be known to evaluate a ~ b.


Solution

  • No such thing exists. There's no notion of syntactic equality in the logic, because it admits definitions (x ≡ T) and substitution (x ≡ y ⇒ P x ≡ P y).

    What you could do instead is use ML's equality operator on terms. But for that, you have to use ML blocks.