Recent changes
Unreleased changes
Changed
in
HLevels.vSplit into
HLevelsintoHLevelsBase, which does not depend on axioms, andHLevels, which exports the former and provides the previous functionality (#133, by Andres Erbsen).
in
ZArith,vand dependenciesReducing reliance on
Znumtheorywithin stdlib changed the internal dependencies between files, code relying on files being transitively required in stdlib may need to now explicitlyRequireZnumtheory,BinInt,BinList,BinNat,BinNums,BinPos,Setoid,Tauto,Zhints,Zpow_def,Zpow_facts, orZbool(#136, by Andres Erbsen).
in
PermutationMoved
Fin-specific definitons intoFinFun(#154, by Andres Erbsen).
in
FinFunSplit out non-
Fin-specific definitons intoLists.Finite(#154, by Andres Erbsen).
in
NsatzTactic.vSplit NsatzTactic into a smaller
NsatzTacticthat only depends onsetoid_ring, and per-domain filesZNsatz,QNsatz, andRNsatz(#155, by Andres Erbsen).
Added
in
HLevelsBase.vtransparent lemmas
false_hprop,true_hprop,Is_true_hprop,eq_true_hprop, and a wrapperstransparent_Is_trueandtransparent_eq_trueto produce transparent proofs forIs_trueandeq_truegiven not necessarily transparent proofs of the same (#133, by Andres Erbsen).
in
BinNatDef.vandBinNat.vAdded definition
Niter_opfor repeating associative operations, a proof relating it to the genericN.iter(iter_op_correct), and propertiesiter_op_0_r,iter_op_1_r,iter_op_succ_r, anditer_op_add_r(#134, by Andres Erbsen).
in
Zcong.vtheory of integer congruences and multiplicative inverses up to Chinese Remainder Theorem (#135, by Andres Erbsen).
in
ZModOffset.vAdded theory of
Z.modulowith output range shifted by a constant. The main definition isZ.omodulo, withZ.smodulocapturing the special case where the offset is equal to half of the modulus, such as in two's-complement arithmetic (#135, by Andres Erbsen).
Zdivisibility.vRefactored theory of integer divisibility including primality and coprimality. This file is intended to replace
Znumtheory(#136, by Andres Erbsen).
in
Zmod.vAdded theory of modular integer arithmetic, including machine words / bitvectors and the multiplicative group of integers modulo another integer. About 450 lemmas are provided (#144, by Andres Erbsen).
in
ZmodNsatzandZmodAdded support for the
nsatztactic onZmod(#156, by Andres Erbsen).
in
Ncring_tacAdded extension-point typeclass
extra_reifythat is only resolved on non-variables for which built-in syntax-directed reification did not find a match (#156, by Andres Erbsen).
in
NsatzTacticAdded support for
nsatzusing ring hypotheses above non-ring hypotheses. If a proof relies onnsatznot using earlier ring hypotheses, clear these hypotheses before calling nsatz. (#157, by Andres Erbsen).
Renamed
Removed
in
Zdiv.valias
ZmodforZ.modulo, deprecated since 8.17 (#149, by Andres Erbsen).
Deprecated
Version 9.0
Changes in 9.0.0
Changed
Changed the requirement prefix of the standard library from
CoqtoStdliband made it mandatory. As a temporary measure, for backward compatibility with older versions,Coq, or a missingFrom Stdlib, is immediatly translated toStdlibwith a warning. It is thus not recommended to name anythingCoqorCoq.*. The recommended transition path is to first potentially silence the warnings, adding the lines-arg -w -arg -deprecated-from-Coq,-arg -w -arg -deprecated-dirpath-Coqand-arg -w -arg -deprecated-missing-stdlibor simply the more generic-arg -compat -arg 8.20to your_CoqProject. Then, when droping support for Coq <= 8.20, replacing requirement of Stdlib modules byFrom Stdlib Require {Import,Export,} <LibraryModules>.. Beware that the Stdlib still has a handful redundant names, that is for modulesByte, you still have to useFrom Stdlib.StringsorFrom Stdlib.Init, forTacticsuseFrom Stdlib.ProgramorFrom Stdlib.Init, forTautouseFrom Stdlib.micromegaorFrom Stdlib.Initand forWf, useFrom Stdlib.ProgramorFrom Stdlib.Init(#19310 and #19530, the latter starting to implement CEP#83 by Pierre Roux).in
Fin.vcase_L_R'andcase_L_Rmade transparent definitions (#19655, by Andrej Dudenhefner).
in
List.vlemmas that were using the letter
Oin their name to refer to zero now use instead the digit0(#19479, by Hugo Herbelin).
in several files
remove transitive requirements or export of theories about
Z, you may need to add explicitRequireorImportofZArithorLia(#19801, by Andres Erbsen).
in
Zbool.vdefinition of
Zeq_boolis now an alias forZ.eqb, this is expected to simplify simultaneous compatibility with 8.20 and 9.0 (#19801, by Andres Erbsen).
Added
file
All.vwhich doesRequire Exportof all other files in Stdlib (#19914, by Gaëtan Gilbert).in
BinPos.vlemma
BinPos.iter_op_correct, relatingPos.iter_opfor associative operations to the more generalPos.iter(#19749, by Andres Erbsen).
in
Eqdep_dec.vinLogiclemmas
UIP_None_l,UIP_None_r,UIP_None_None,UIP_nil_l,UIP_nil_r,UIP_nil_nil(#19483, by Andres Erbsen).
in
EquivDec.vinClassesEqDecinstance foroption(#19949, by Daniil Iaitskov).
in
Fin.vlemmas
case_L_R'_L,case_L_R'_R,case_L_R_L,case_L_R_R(#19655, by Andrej Dudenhefner).
in
Inverse_Image.vinWellfoundedlemmas
Acc_simulationandwf_simulation(#18183, by Andrej Dudenhefner).
in
List.vlemmas
length_consandlength_nil(#19479, by Hugo Herbelin).Properinstance to enablesetoid_rewriteto rewrite inside the function argument ofList.map(#19515, by Andres Erbsen).lemmas
length_tl,tl_map,filter_rev,filter_map_swap,filter_true,filter_false,list_prod_as_flat_map,skipn_seq,map_const,fst_list_prod,snd_list_prod,Injective_map_NoDup_in, andPermutation_map_same_l(#19748, by Andres Erbsen).lemma
length_app_comm(#75, by Nicholas Hubbard).
file
List_Extension.vinWellfounded(#18183, by Andrej Dudenhefner).in
List_Extension.vwell-founded list extension
list_extof a well-founded relation, including infrastructure lemmas. It can be used for well-foundedness proofs such aswf_lex_expinLexicographic_Exponentiation.v(#18183, by Andrej Dudenhefner).
in
NatInt.vlemmas
mul_reg_landmul_reg_r(#17560, by Remzi Yang).
in
Operators_Properties.vinRelationslemma
clos_t_clos_rt(#18183, by Andrej Dudenhefner).
in
Realsnew file
Zfloor.vwith definitions ofZfloorandZceiland corresponding lemmasup_Zfloor,IZR_up_Zfloor,Zfloor_bound,Zfloor_lub,Zfloor_eq,Zfloor_le,Zfloor_addz,ZfloorZ,ZfloorNZ,ZfloorD_cond,Zceil_eq,Zceil_le,Zceil_addz,ZceilD_cond,ZfloorB_cond,ZceilB_cond(#89, by Laurent Théry).
in
VectorSpec.vlemma
Forall2_cons_iff(#19269, by Lucas Donati and Andrej Dudenhefner and Pierre Rousselin).
in
Zdiv.vlemma
Z.mod_id_iffgeneralizesZ.mod_small. (#19752, by Andres Erbsen).lemmas
Z.mod_opp_mod_opp,Z.mod_mod_opp_r,Z.mod_opp_r_mod,Z.mod_mod_abs_r,Z.mod_abs_r_modcombiningZ.modulowithZ.opporZ.abs(#19752, by Andres Erbsen).Lemmas
cong_iff_0andcong_iff_excan be used to reduce congruence equalities to equations where only one side is headed byZ.modulo. (#19752, by Andres Erbsen).Lemmas
Z.gcd_mod_landZ.gcd_mod_rgeneralizeZ.gcd_mod. (#19752, by Andres Erbsen).Lemma
Z.mod_mod_dividegeneralizesZmod_mod. (#19752, by Andres Erbsen).Lemma
Z.mod_pow_lallows pushing modulo inside exponentiation (#19752, by Andres Erbsen).
file
Zdiv_facts.v(#19752, by Andres Erbsen).in
Zdiv_facts.vin
Znat.vlemmas
N2Z.inj_lxor,N2Z.inj_land,N2Z.inj_lor,N2Z.inj_ldiff,N2Z.inj_shiftl, andN2Z.inj_shiftrrelating bitwise operations onNto those onZ(#19750, by Andres Erbsen).
Deprecated
Previous versions
The standard library historically used to be distributed with Coq, please look in Coq own changelog for details about older changes.