I am having trouble understanding the difference between an equality and a local definition. For example, when reading the documentation about the set
tactic:
remember term as ident
This behaves as set ( ident := term ) in * and using a logical (Leibniz’s) equality instead of a local definition
Indeed,
set (ca := c + a) in *.
e.g. generatesca := c + a : Z
in the context, whileremember (c + a ) as ca.
generatesHeqca : ca = c + a
in the context.
In case 2. I can make use of the generated hypothesis like rewrite Heqca.
, while in case 1., I cannot use rewrite ca
.
What's the purpose of case 1. and how is it different from case 2. in terms of practical usage?
Also, if the difference between the two is fundamental, why is remember
described as a variant of set
in the documentation (8.5p1)?