A hash over the structure of the subtree rooted at one expression of a
snapshot. It covers each node's type, operator and child order, and each
variable's referent: claim id and claim version for a claim-bound
variable; the bound premise's root, recursively, for a variable bound to a
premise of the same argument; argument id and premise id for one bound to
a premise of another argument; argument id, expression id and aspect for
an expression-bound variable. It ignores the argument's own ids and
versions, and leaves out the versions of other arguments, so moving
another argument to a new version does not change it.
Two versions of an argument that keep an expression's id and give it the
same fingerprint hold the same structure under it.
A hash over the structure of the subtree rooted at one expression of a snapshot. It covers each node's type, operator and child order, and each variable's referent: claim id and claim version for a claim-bound variable; the bound premise's root, recursively, for a variable bound to a premise of the same argument; argument id and premise id for one bound to a premise of another argument; argument id, expression id and aspect for an expression-bound variable. It ignores the argument's own ids and versions, and leaves out the versions of other arguments, so moving another argument to a new version does not change it.
Two versions of an argument that keep an expression's id and give it the same fingerprint hold the same structure under it.