rocq-prover / rocq-prover/stdlib

String library: should it be built on top of the list library? should it be made abstract?

Open
#40 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rocq Prover
Stars
42
Forks
38
Avg merge
14h 6m
Merged PRs (30d)
3

Description

It was advocated that the use of a concrete but ad hoc structure of list in the String library was the worst possible design and that it should either be entirely built on List (to take benefit of the List library), or made abstract so that String could be directly extracted to the primitive type string of the languages targetted by the extraction.

This seems to be a reasonable position, and, actually, both directions could even be adopted, with a List-based implementation hidden behind an abstraction, with only drawback to have to express computational rules as abstract equations, and, mitigating this e.g. by providing a corresponding autorewrite database.

This issue is to collect further opinions on the design of the String library and to eventually provide a new one. [Note that I'm not myself a heavy user of the String library, so, the point is rather to collect inputs from heavy users.]

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked PR discussion and comparing the current String and List library designs. A useful outcome would require a decided design and concrete scope for a replacement or abstraction; the issue names no files or tests.

Written by the indexing model from the issue text.

Assessment

Domain
tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.