Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tchajed/coq-subslice
Coq library for reasoning about subslices of lists
https://github.com/tchajed/coq-subslice
coq
Last synced: about 2 months ago
JSON representation
Coq library for reasoning about subslices of lists
- Host: GitHub
- URL: https://github.com/tchajed/coq-subslice
- Owner: tchajed
- Created: 2016-02-25T14:36:23.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-07-07T17:48:55.000Z (over 2 years ago)
- Last Synced: 2024-07-30T17:54:53.976Z (6 months ago)
- Topics: coq
- Language: Coq
- Homepage:
- Size: 23.4 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# subslice
[![CI](https://github.com/tchajed/coq-subslice/actions/workflows/coq-action.yml/badge.svg)](https://github.com/tchajed/coq-subslice/actions/workflows/coq-action.yml)
A Coq implementation of subslicing of lists. We implement a function `subslice` with the behavior of array indexing in both Python and Go, for example (with syntax `a[n:m]` in those languages). Subslicing is a generalization of the standard library `firstn` and `skipn` list operations, and is internally implemented with these functions.
Many theorems are proven showing simplifications of combinations of subslice, firstn and skipn, including lengths of the built lists. These operations accept nats as inputs and have well-defined behavior for out-of-bounds inputs (as opposed to accepting Fin.t arguments); as much as possible, theorems have minimal premises and apply even for out-of-bound arguments.