mit-plv / coqutil

Coq library for tactics, basic definitions, sets, maps
MIT License
41 stars 24 forks source link

Merging fiat-crypto utilities into coqutil? #55

Open JasonGross opened 2 years ago

JasonGross commented 2 years ago

Should any/all/most of the fiat-crypto src/Util directory be migrated to coqutil? (Currently this directory is more-or-less replicated across fiat, rewriter, and fiat-crypto, with fiat-crypto containing the most complete and up-to-date version.)

An incomplete list of tactics, roughly in order from most-used to least-used:

An incomplete list of other utilities:

samuelgruetter commented 2 years ago

I think it would be useful to have these tactics and utilities in coqutil. Some questions:

I quickly went through the tactics/utilities you listed above and looked for equivalent ones in coqutil, and here's what I found:

coqutil.Tactics.Tactics.destruct_one_match_...

coqutil.Tactics.forward.unique_pose

head/head_of_app already appears in 3 different locations in coqutil

coqutil.Z

coqutil.Decidable based on BoolSpec rather than sumbool (because we don't want proofs of Props to appear in code that's meant to be executed)

coqutil.Datatypes.Inhabited

coqutil.Datatypes.HList

also in coqutil.Datatypes.HList

coqutil.Datatypes.List also contains some lemmas about option (list _) and list (option _)

andres-erbsen commented 2 years ago

FixCoqMistakes sounds like https://github.com/mit-plv/coqutil/blob/master/src/coqutil/sanity.v

https://coq.inria.fr/refman/changes.html

Changed: The default tactic used by firstorder is auto with core instead of auto with ; see Solvers for logic and equality for details; old behavior can be reset by using the -compat 8.12 command-line flag; to ease the migration of legacy code, the default solver can be set to debug auto with with Set Firstorder Solver debug auto with * (#11760, by Vincent Laporte).