summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-11-25remove unused importsHelmut Grohne
These will happen to break with later agda-stdlib releases.
2018-11-25make the setoid parameter to sequenceV-cong explicitHelmut Grohne
Later versions of agda will be unable to infer it unambiguously.
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-11-25fix missing import of "length"Helmut Grohne
Broken in parent commit.
2018-01-02length-replicate is now upstream as wellHelmut Grohne
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
2016-06-21fix compilation with agda 2.5.1, agda-stdlib 0.12Helmut Grohne
2015-08-11declare copyright and licenseHelmut Grohne
2015-07-02split lemma-union-not-used into lemma-exchange-mapsHelmut Grohne
New type suggested by Janis Voigtländer.
2015-06-12add example applications of bffHelmut Grohne
2015-06-10use "module _" to simplify types involving Get recordsHelmut Grohne
2015-06-09drop barred members from GetTypesHelmut Grohne
These became duplicates of their non-barred counterparts.
2015-06-09drop the Function.Equality requirement from GetTypesHelmut Grohne
We never used the equality property. Thus a simple function is sufficient here. We always fulfilled the property using ≡-to-Π anyway.
2015-06-03rewrite lemma-disjoint-union in a more compositional wayHelmut Grohne
2015-01-05SetoidReasoning is no longer neededHelmut Grohne
2015-01-05turns out: ind-cong is a special case of H.cong₂Helmut Grohne
The major differences between them are: * ind-cong treats the first parameter to the function implicit whereas H.cong₂ makes it explicit. * ind-cong expects a propositional proof for the first equality whereas H.cong₂ asks for a heterogeneous one. Lift using H.reflexive.
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-21move all those toList calls inside _in-domain-of_Helmut Grohne
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-17generalize lemma-union-not-usedHelmut Grohne
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-10-14drop the injection requirement for gl₁Helmut Grohne
Turns out, we never use this requirement. The only place where it may come in relevant is the free theorems. But here non-injectivity turns out to be reasoning about multiple get functions that are selected by the additional index each individually satisfying the free theorem and thus commonly satisfying it as well.
2014-09-26resolve ambiguity in BFFPlugHelmut Grohne
Fixes compilation with Agda 2.4.2.
2014-06-06drop-suc is cong predHelmut Grohne
2014-04-03fix compilation for Agda 2.3.0.1 againHelmut Grohne
It fails to infer the type of MaybeFunctor._<$>_, so give it explicitly.
2014-04-03Merge branch feature-shaped into masterHelmut Grohne
Generalizing both Vecs in the type of get to instances of Shaped. Thus allowing trees and other data structures to be used.
2014-04-03drop PartialShapeVecHelmut Grohne
One can use PartialShapeShape instead, so there is limited utility for this type. It is not used directly and there also is no PartialVecShape.
2014-03-10also allow Shaped types for the viewHelmut Grohne
Albeit long, this commit is relatively boring.
2014-03-10generalize lemma-{just-sequence,sequence-successful}Helmut Grohne
2014-03-10Example: show that PairVec is ShapedHelmut Grohne
Example inspired in VoigtlaenderHMW13. Note that Vec (α × β) (length s) is not Shaped in this way since its real index is only a number.
2014-03-10port precondition to PartialShapeVecHelmut Grohne
2014-03-10port theorem-{1,2} to PartialShapeVecHelmut Grohne
2014-03-10implement a bff on a shaped source typeHelmut Grohne
Add IsShaped and Shaped records describing shapely types as in Jay95. Implement bff on Shaped and rewrite PartialVecVec to use the vector shape retaining all proofs on the vector implementation.
2014-03-07add a Functor structureHelmut Grohne
The intent is to replace some uses of Vec with a structure that also happens to be a functor. RawFunctors from the standard library provide no laws though, so we define a Functor structure that adds the laws. As an additional law congruence is added, because * Other standard library structures in Algebra.Structures also require congruence. * Otherwise the identity law would have to reason about different identities.
2014-03-07improve notation of theorem-1 using local bindingsHelmut Grohne
2014-03-07use allFin rather than tabulate idHelmut Grohne
2014-03-05Merge branch feature-omit-sequence into masterHelmut Grohne
Beyond allowing default values during shape updates, this branch simplifies working with shapes other than Vec.
2014-03-04make lemma-sequenceV-successful more preciseHelmut Grohne
2014-02-26weaken assumptions made by theorem-2 and asssoc-enoughHelmut Grohne
2014-02-26remove the sequenceV call from bffHelmut Grohne
This allows bff to be more precise with regard to its failure modes, even though we are not yet making use of that projected precision. It allows inserting a default value for entries that could not be recovered in a shape changing update as described in VoigtlaenderHMW13.
2014-02-26fix compilation on Agda 2.3.0.1Helmut Grohne
2014-02-26convert LiftGet module to using heterogeneous equalityHelmut Grohne
The reduction in proof length is impressive.
2014-02-24add intersperse as another exampleHelmut Grohne
2014-02-24theorem-2 works with EqR rather than SetoidReasoning againHelmut Grohne
2014-02-24define fromFunc more convenientlyHelmut Grohne
2014-02-24generalize/weaken lemma-get-mapMVHelmut Grohne
It is now lemma-get-sequenceV and thus no longer applies the free theorem for the function. Apart making the proof shorter, it also makes the main use of the free theorem more visible in theorem-2.