summaryrefslogtreecommitdiff
path: root/FinMap.agda
AgeCommit message (Collapse)Author
2019-09-29port to agda/2.6.0.1 and agda-stdlib/1.1Helmut Grohne
* Data.Vec.lookup changed parameter order. * A number of symbols were moved from Data.Maybe to submodules. * In a number of occasions, agda no longer figures implicit arguments and they had to be made explicit. * We can no longer use heterogeneous proofs inside equational reasoning for propositional equality. Use heterogeneous equational reasoning. * Stop importing proof-irrelevance as that would require K.
2019-03-31Generic.just-injective is Data.Maybe.just-injectiveHelmut Grohne
2019-03-31FinMap.lemma-lookupM-delete is another variant of ↵Helmut Grohne
Data.Vec.Properties.lookup∘update′
2019-03-31FinMap.lemma-lookupM-fromFunc is almost Data.Vec.Properties.lookup∘tabulateHelmut Grohne
2019-03-31FinMap.lemma-tabulate-∘ is also known as Data.Vec.Properties.tabulate-congHelmut Grohne
2019-03-31replace FinMap.lemma-lookupM-empty with Data.Vec.Properties.lookup-replicateHelmut Grohne
2018-11-25port to agda/2.5.4.1 and agda-stdlib/0.17Helmut Grohne
2018-11-25remove unused importsHelmut Grohne
These will happen to break with later agda-stdlib releases.
2018-11-25reorganize equality importsHelmut Grohne
Since we are working with multiple setoids now, it makes more sense to qualify their members. Follow the "as P" pattern from the standard library. Also stop importing those symbols from Relation.Binary.Core as later agda-stdlib versions will move them away. Rather than EqSetoid or PropEq, use P.setoid consistently.
2018-01-02remove lemma-lookupM-insert-other in favour of lookup∘update′Helmut Grohne
2018-01-02remove lemma-lookupM-insert in favour of lookup∘updateHelmut Grohne
2018-01-01fix compilation with agda 2.5.3, agda-stdlib 0.14Helmut Grohne
2015-07-02split lemma-union-not-used into lemma-exchange-mapsHelmut Grohne
New type suggested by Janis Voigtländer.
2015-06-03rewrite lemma-disjoint-union in a more compositional wayHelmut Grohne
2014-11-26fix compilation against agda stdlib 0.9Helmut Grohne
2014-10-30make more parameters implicitHelmut Grohne
All of these changes were applied to functions of type ... -> (x : ...) -> ... == x -> ... where x could be preceded by just making the x implicit, because it can be uniquely deduced from the equality proof.
2014-10-20change restrict and fromAscList to work with VecHelmut Grohne
While they do work with Lists and there is no inherent need to know the length, they are most often invoked in a context where a Vec needs to be converted to a List using toList. By changing them to work with Vec, quite a few toList calls can be dropped.
2014-10-16sym result of lemma-lookupM-{i,checkI}nsert-otherHelmut Grohne
Typically we have the complex term on the LHS and the simplified term on the RHS. These lemmata did it otherwise and by symming them, we save two syms.
2014-10-15remove lemma-just≢nothingHelmut Grohne
Special case of contradiction.
2014-02-26fix compilation on Agda 2.3.0.1Helmut Grohne
2014-02-24define fromFunc more convenientlyHelmut Grohne
2014-02-17fix compilation on Agda 2.3.0.1Helmut Grohne
2014-02-10Merge branch master into feature-shape-updateHelmut Grohne
For building on the sieve example.
2014-02-07eliminate useless withsHelmut Grohne
2014-02-07allow shape shape updates in bffHelmut Grohne
Unlike the original version in VoigtlaenderHMW13, we do not request an sput : ℕ → ℕ → Maybe ℕ function for determining the updated source shape from the original source and updated view shape. Instead we ask the caller directly to provide the result of sput together with a proof that its getlen matches with the provided, updated view. The precondition assoc-enough is not enriched in this way and still requires a non-changing shape. I.e. it says what it said before.
2014-02-05add lemma-lookupM-fromFuncHelmut Grohne
The new lemma replaces two uses of lemma-fromFunc-tabulate, because the latter exposes the implementation of FinMapMaybe, whereas the former argues about the behaviour of FinMapMaybe. The aim of not exposing the implementation (apart from brevity) is to enable refactoring.
2014-02-03make things compile with 2.3.0.1Helmut Grohne
* Remove let patter , match = foo usage * Remove Qualified.infix-symbol usage * Add non-obvious absurd patterns * Qualify constructors
2014-01-28use the indexed version of the Vec SetoidHelmut Grohne
2014-01-27Merge branch feature-deleteHelmut Grohne
Most conflicts stem from varying imports or added functions and a take-both approach merges them. A notable exception is theorem-2, where a new result sequence-cong was required. Apart from that, theorem-2 could be taken almost verbatim from feature-delete albeit its type coming from feature-decsetoid. Conflicts: Bidir.agda FinMap.agda Generic.agda Precond.agda
2014-01-23show a stronger lemma-checkInsert-restrictHelmut Grohne
We can actually get semantic equality there without requiring anything else. Indeed this was already hinted in the BX for free paper that says, that lemma-1 holds in semantic equality.
2014-01-16generalize lemma-insert-same to arbitrary SetoidsHelmut Grohne
The general idea is to enable bff to use arbitrary DecSetoids. * assoc needs to learn about DecSetoid * checkInsert needs to learn about DecSetoid * InsertionResult needs to learn about Setoid * Parameters to InsertionResult.same become weaker * lemma-checkInsert-restrict should work with weaker same * lemma-insert-same needs to learn about Setoid
2013-12-17refactor to get rid of FinMap without Maybe entirelyHelmut Grohne
The union was the only user of this type and now it uses only partial mappings. So drop remaining uses of FinMap and make everything work with FinMapMaybe instead.
2013-12-17update bff implementation to use deleteHelmut Grohne
In the presence of shape-changing updates, bff needs to shrink one of the mappings before unifying them. As long the shape does not change, the union becomes a disjoint union. With this insight we can adapt the proof of theorem-1 using the adapted lemma-disjoint-union. Unfortunately theorem-2 requires more work and assoc-enough becomes non-trivial due to the introduction of mapMV.
2013-12-16move generic functions to a new Generic moduleHelmut Grohne
2013-12-16add new functions delete, delete-many and partializeHelmut Grohne
and accompanying lemmata.
2013-04-18trim lemma-union-restrictHelmut Grohne
2013-01-28polish lemmata in FinMapHelmut Grohne
2013-01-14define a more useful version of lemma-just\==nnothingHelmut Grohne
If one had a parameter of type just x \== nothing it could be simply refuted by case splitting. So the cases where lemma-just\==nnothing was used always employed trans to combine two results. The new version takes both results instead.
2013-01-05shrink lemma-tabulate-\circ using cong\_2Helmut Grohne
2012-12-10get rid of contrapositionHelmut Grohne
Using function composition in all other places already.
2012-11-22shorten line lengths lemma-union-restrictHelmut Grohne
2012-10-25rename lemma-from-just to just-injectiveHelmut Grohne
We already have suc-injective and \::-injective. Consistency!
2012-09-26use _\==n_ and _\notin_ instead of \negHelmut Grohne
Consistent. Shorter.
2012-04-27use fromFunc to define unionHelmut Grohne
Semantically this is no change, but reducing to standard interface seems better.
2012-04-19FinMap: lemma-lookupM-restrict drop useless implicitHelmut Grohne
2012-04-19move lemma-just!=nothing to FinMap and use it thereHelmut Grohne
2012-02-09avoid a sym in lemma-union-restrictHelmut Grohne
2012-02-09s/generate/restrict/gHelmut Grohne
The name was deemed misleading. Nothing else changed.
2012-02-09prove lemma-union-generateHelmut Grohne
2012-01-26split Bidir.agda to FinMap.agdaHelmut Grohne