Age | Commit message (Collapse) | Author |
|
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.
|
|
|
|
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.
|
|
The reduction in proof length is impressive.
|
|
|
|
This is an improved version of getVec-to-getList in that it also
transports the corresponding free theorem.
|
|
This allows passing both getlen and get as a single parameter. It also
allows to make the free theorem a prerequisite instead of a postulate.
|
|
|
|
This should make it easier to see what is assumed.
|
|
|
|
|
|
|
|
|
|
Thanks to Joachim Breitner and Wouter Swierstra for their encouragement
and hints. Note that the result duplicates work at this point, but the
proofs are complete.
|
|
Thanks to Joachim Breitner for assisting and pointing to
proof-irrelevance.
|
|
The name vec-length-same hides the fact that it eliminates a toList and
a fromList. Actually a more generic form without fromList is possible.
Thanks to Joachim Breitner for spotting.
|
|
Thanks to Andres Löh for spotting.
|
|
There are now like four open holes in LiftGet.agda that all boil down to
the same problem. For proving equalities on Vec we first need to show
that those Vecs actually have the same type. Proofs on two different
levels are needed and somehow need to be merged.
|
|
|
|
|
|
|
|
|
|
Thus far we have found maps in both directions but lack statements about
the composition of them.
|