- Nov 21, 2019
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Nov 20, 2019
-
-
Robbert Krebbers authored
Also, rewrite `iIntoEmpValid`. Now, instead of using Ltac to traverse the type of the term and generate goals for the premises, we repeatedly apply a series of lemmas. This has the advantage that it works up to convertability, and we no longer need the `eval ...` hacks.
-
- Sep 19, 2019
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
-
- Sep 13, 2019
-
-
Jacques-Henri Jourdan authored
The general idea is to first import/export modules which are further than the current one, and then import/export modules which are close dependencies. This commit tries to use the same order of imports for every file, and describes the convention in ProofGuide.md. There is one exception, where we do not follow said convention: in program_logic/weakestpre.v, using that order would break printing of texan triples (??).
-
- Aug 22, 2019
-
-
Robbert Krebbers authored
-
- Jun 16, 2019
-
-
Robbert Krebbers authored
Used the following script: sed ' s/\bCofeMor/OfeMor/g; s/\-c>/\-d>/g; s/\bcFunctor/oFunctor/g; s/\bCFunctor/OFunctor/g; s/\b\%CF/\%OF/g; s/\bconstCF/constOF/g; s/\bidCF/idOF/g s/\bdiscreteC/discreteO/g; s/\bleibnizC/leibnizO/g; s/\bunitC/unitO/g; s/\bprodC/prodO/g; s/\bsumC/sumO/g; s/\bboolC/boolO/g; s/\bnatC/natO/g; s/\bpositiveC/positiveO/g; s/\bNC/NO/g; s/\bZC/ZO/g; s/\boptionC/optionO/g; s/\blaterC/laterO/g; s/\bofe\_fun/discrete\_fun/g; s/\bdiscrete\_funC/discrete\_funO/g; s/\bofe\_morC/ofe\_morO/g; s/\bsigC/sigO/g; s/\buPredC/uPredO/g; s/\bcsumC/csumO/g; s/\bagreeC/agreeO/g; s/\bauthC/authO/g; s/\bnamespace_mapC/namespace\_mapO/g; s/\bcmra\_ofeC/cmra\_ofeO/g; s/\bucmra\_ofeC/ucmra\_ofeO/g; s/\bexclC/exclO/g; s/\bgmapC/gmapO/g; s/\blistC/listO/g; s/\bvecC/vecO/g; s/\bgsetC/gsetO/g; s/\bgset\_disjC/gset\_disjO/g; s/\bcoPsetC/coPsetO/g; s/\bgmultisetC/gmultisetO/g; s/\bufracC/ufracO/g s/\bfracC/fracO/g; s/\bvalidityC/validityO/g; s/\bbi\_ofeC/bi\_ofeO/g; s/\bsbi\_ofeC/sbi\_ofeO/g; s/\bmonPredC/monPredO/g; s/\bstateC/stateO/g; s/\bvalC/valO/g; s/\bexprC/exprO/g; s/\blocC/locO/g; ' -i $(find theories -name "*.v")
-
- May 24, 2019
-
-
Robbert Krebbers authored
This MR is a follow up on the renamings performed (implicitly) as part of !215. This MR makes the following changes: - `auth_both_frac_valid` and `auth_both_valid` are now of the same shape as `auth_both_frac_validN` and `auth_both_validN`. That is, both are now biimplications. - The left-to-right direction of `auth_both_frac_valid` and `auth_both_valid` only holds in case the camera is discrete. The right-to-left versions for non-discrete cameras are prefixed `_2`, the convention that we use throughout the development. - Change the direction of lemmas like `auth_frag_valid` and `auth_auth_valid` so that it's consistent with the other lemmas. I.e. make sure that the ◯ and ● are always on the LHS of the biimplication.
-
- May 23, 2019
-
-
- May 01, 2019
-
-
Robbert Krebbers authored
Notably, `big_andL_andL` and `big_andL_and` where a ⊣⊢ and ⊢ version of the same lemma. I favored the `big_opL_op` naming scheme.
-
- Mar 06, 2019
-
-
Dan Frumin authored
-
- Mar 05, 2019
-
-
Ralf Jung authored
-
- Jan 24, 2019
-
-
Maxime Dénès authored
This is in preparation for coq/coq#9274.
-
- May 31, 2018
-
-
Robbert Krebbers authored
Thanks to @dfrumin.
-
- Apr 25, 2018
-
-
Ralf Jung authored
-
- Mar 21, 2018
-
-
Ralf Jung authored
-
- Mar 03, 2018
-
-
Robbert Krebbers authored
-
- Mar 01, 2018
-
-
Jacques-Henri Jourdan authored
This requires changing the Hint Mode of the [Frame] type class because it should not fail if its parameter is an evar, but instantiate it instead. In order to prevent all the other instances of [Frame] to intantiate this evar themselves, we create a new type class [KnwonFrame], which corresponds to the old behavior.
-
- Jan 23, 2018
-
-
Robbert Krebbers authored
-
- Oct 30, 2017
-
-
Robbert Krebbers authored
-
- Oct 28, 2017
-
-
Robbert Krebbers authored
This way, it can be used with `iApply`.
-
- Oct 25, 2017
-
-
Robbert Krebbers authored
-
Robbert Krebbers authored
The advantage is that we can directly use a Coq introduction pattern `cpat` to perform actions to the pure assertion. Before, this had to be done in several steps: iDestruct ... as "[Htmp ...]"; iDestruct "Htmp" as %cpat. That is, one had to introduce a temporary name. I expect this to be quite useful in various developments as many of e.g. our invariants are written as: ∃ x1 .. x2, ⌜ pure stuff ⌝ ∗ spacial stuff.
-
- Sep 17, 2017
-
-
Robbert Krebbers authored
For obsolete reasons, that no longer seem to apply, we used ∅ as the unit.
-
- Aug 20, 2017
-
-
Robbert Krebbers authored
This makes it easier to frame or introduce some modalities before introducing universal quantifiers.
-
- Aug 07, 2017
-
-
Jacques-Henri Jourdan authored
-
- Mar 24, 2017
-
-
Robbert Krebbers authored
-
- Mar 15, 2017
-
-
Robbert Krebbers authored
-
- Mar 14, 2017
-
-
Robbert Krebbers authored
-
- Jan 27, 2017
-
-
Ralf Jung authored
-
- Jan 23, 2017
-
-
Jacques-Henri Jourdan authored
-
- Jan 09, 2017
-
-
Ralf Jung authored
-
- Jan 06, 2017
-
-
Ralf Jung authored
-
- Jan 05, 2017
-
-
Ralf Jung authored
-
- Jan 03, 2017
-
-
Ralf Jung authored
This patch was created using find -name *.v | xargs -L 1 awk -i inplace '{from = 0} /^From/{ from = 1; ever_from = 1} { if (from == 0 && seen == 0 && ever_from == 1) { print "Set Default Proof Using \"Type*\"."; seen = 1 } }1 ' and some minor manual editing
-
- Dec 23, 2016
-
-
Jacques-Henri Jourdan authored
-
- Dec 09, 2016
-
-
Ralf Jung authored
-
- Dec 05, 2016
-
-
Robbert Krebbers authored
Using this new definition we can express being contractive using a Proper. This has the following advantages: - It makes it easier to state that a function with multiple arguments is contractive (in all or some arguments). - A solve_contractive tactic can be implemented by extending the solve_proper tactic.
-
- Dec 02, 2016
-
-
Robbert Krebbers authored
-