-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merging fiat-crypto utilities into coqutil? #55
Comments
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:
also in
|
FixCoqMistakes sounds like https://github.com/mit-plv/coqutil/blob/master/src/coqutil/sanity.v https://coq.inria.fr/refman/changes.html
|
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:
match
subject to various conditions such as "only this type of variable", "only terms which contain no matches inside themselves", "only in the hyps", "only in the conclusion", "only variables" (with intelligent insertion of equations)assumption
,auto
,lia
, etc)pose
andassert
which are suitable for use inrepeat
blocks by ensuring that they don't pose duplicatesiff
,and
, produnderneath binders in a way that preserves the binders, e.g., turning
forall x y, P x y /\ Q x yinto
forall x y, P x yand
forall x y, Q x y`set
orsubst
on all evarssubst
that works modulo relationssubst
on all local definitionstransparent assert
etransitivity
that accepts argumentsdestruct
that attempts to work with convoy-pattern terms appearing in the goalespecialize
tac_on_subterms
, to be used as e.g.tac_on_subterms ring_simplify
intros *
tryif
for returning constrsreplace_with_vm_compute
for getting aroundvm_compute
not inserting castsif
statementsAn incomplete list of other utilities:
Z
, including automation for:lia
,nia
, orlra
at the leavesZ.modulo
, which is factored into a tacticsubst
which will solve linear equations in variables overZ
to substituteZ.testbit
nat
,list
,N
,Q
, MSetsreflect
culminating in a general tactic for turning boolean equality hypotheses into propositionsstring
, includingShow
,ShowLevel
(for printing with precedence), andShowLines
(printing to lists of strings rather than single strings, for better efficiency) and theory around themwf
and more factsArg
module (maybe this should be split off to a separate project and added on opam? (perhaps to be combined with the method for extracting main functions and executables in OCaml and Haskell?)eq
N
s into primesx = x
witheq_refl
when equality onx
is decidableLet_In
constant for not inlininglet ... in ...
and a monad around thisinversion_sigma
) foroption
,nat
,list
,prod
,prod
with primitive projections,sum
, primitive projection versions ofsig
,sigT
, etc,sumbool
Prop
soption (list _)
andlist (option _)
The text was updated successfully, but these errors were encountered: