Essai où assert_style n'est utilisé que si pas visuellement une équation;
Fixing a loop in proof reconstruction for congruence (#2447).

Proofs of C t1..tn+1 = C t1..tn+1, even when the terms were
syntactically the same, were built by composition of a proof of C
t1..tn = C t1..tn with a proof of reflexivity of tn+1. The latter was
reduced to showing C t1..tn = C u1..un for C u1..un the canonical
representant of C t1..tn in its congruence class. But if some pair
ti=ui was derivable by injectivity of the constructor C, it might go
back to find a proof of C t1..tn+1 = C t1..tn+1 again, while a simple
reflexivity proof was enough here.

Not sure that the fix prevents any further loop in this part of the
code though.
Re-displaying evar instances in debugger.
New experimental heuristic printing strategy for evar instances: We
don't print bindings of the form "x:=x" unless there is also a binding
"x':=x". Otherwise said, if a variable occurs several time, the
binding where it occurs under the form "x:=x" is printed anyway.  This
should help to understand where the instance is non trivial while
still not obfuscating display in goals with very long list of
uninteresting trivial instances.
Experimental printing of the signature of open evars in Check.
When facing problem ?id = ?id' in resolution of return predicate,
early call the standard resolution function which e.g. does
restriction and maybe solve the problem if pattern-like, instead of
postponing the problem.