Andrej Dudenhefner

Results 55 comments of Andrej Dudenhefner

The reason for the arbitrary behavior is that `auto` currently uses three different unification procedures for 1) hypotheses with zero arguments 2) hints with zero arguments 3) hypotheses or hints...

For the record, `ssreflect`'s `apply: transport_forall_constant.` does work (also with underscores) in the initial example. (Coq 8.16+rc1).

The debug logs are: ``` typeclasses eauto with nocore 1: looking for (forall P : unit -> Prop, P (id tt) -> P tt) without backtracking 1: no match for...

> It seems to be because I'm not sure about this. The following also fails: `typeclasses eauto with core`. So the underlying issues is also orthogonal from the `with` clause.

I see. Also we have `Succeed (typeclasses eauto with empty).`.

Currently (Coq 8.16) for `auto` we have that - `Extern` hints use `Constr_matching.matches` (without flags) to match the pattern with the goal - `Resolve` hints use `Unification.w_unify` (with flags) to...

@xavierleroy I did check that this PR compiles both before and after https://github.com/coq/coq/pull/16293. The main reason for the proposed changes is that fixing bugs in `auto` may allow it to...

> I don't think this solves the linked bug, because there are still discrepancies between (e)auto and simple (e)apply. At least, regarding the linked bug, the following works as expected:...

The bench shows that setting `use_metas_eagerly_in_conv_on_closed_terms = true` does not lead to major slowdowns. However, much of the ci breaks because of the anti-pattern: `tac1; auto. tac2`. Since `(e)auto` became...

> "solve all the side-conditions arising from the rewrite, but do _not_ try to solve the main goal, and error if any side-condition fails to solve" -- something that reliably...